{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "BioBot_FDS_YB_08_IMPLEMENTING_LSTM_V181204_14.ipynb",
      "version": "0.3.2",
      "provenance": [],
      "collapsed_sections": [],
      "toc_visible": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "metadata": {
        "id": "IjyaQqpewlW4",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# BioBot_FDS_YB_08_IMPLEMENTING_LSTM\n",
        "## Deliverable_08: Implementing LSTM RNN Models\n",
        "Author/code developer: Yan Bello. 04/12/2018. As part of the Master in Artificial Intelligence (UNIR). \n",
        "This file/code is part of the development and exploration/experimentation on a Fall Detection System (FDS). \n",
        "\n",
        "---\n",
        "\n",
        "\n",
        "In the following sections, we used this dataset: \n",
        "SisFall: A Fall and Movement Dataset. \n",
        "Created by: A. Sucerquia, J.D. López, J.F. Vargas-Bonilla\n",
        "SISTEMIC, Faculty of Engineering, Universidad de Antiquia UDEA.\n",
        "Detailed information about this dataset can be found in this website: http://sistemic.udea.edu.co/en/investigacion/proyectos/english-falls/.\n",
        "Reference paper: Sucerquia A, López JD, Vargas-Bonilla JF. SisFall: A Fall and Movement Dataset. Sensors (Basel). 2017;17(1):198. Published 2017 Jan 20. doi:10.3390/s17010198\n",
        "\n",
        "---\n",
        "\n"
      ]
    },
    {
      "metadata": {
        "id": "ZtKbNjXglibh",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## 8.0. Step 0. Need to mount Google Drive for Colab"
      ]
    },
    {
      "metadata": {
        "id": "3zwtaJ0RwiwC",
        "colab_type": "code",
        "outputId": "fbe96559-0d59-4d47-9f21-ab81e8f10e44",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "cell_type": "code",
      "source": [
        "# Preliminary step 0. We need to establish/select our working folders. First, ensure  the previous dataset files are available.\n",
        "# The code below is prepared to work with two options: local drive or mounting a Google Drive for Colab\n",
        "# Select the appropriate configuration for your environment by commenting/un-commenting the following lines:\n",
        "\n",
        "# To work with Google Colab and Google Drive: \n",
        "from google.colab import drive \n",
        "drive.mount('/content/gdrive')\n",
        "FILE_DIRECTORY =  \"gdrive/My Drive/Colab Notebooks/\"\n",
        "SisFall_ALL_DIRECTORY =  FILE_DIRECTORY + \"SisFall_dataset_ALL/\"\n",
        "\n",
        "# To work with a local drive, uncomment these line:\n",
        "# FILE_DIRECTORY =  os.getcwd() + \"\\\\\"\n",
        "# SisFall_ALL_DIRECTORY =  FILE_DIRECTORY + \"SisFall_dataset_ALL\\\\\""
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Drive already mounted at /content/gdrive; to attempt to forcibly remount, call drive.mount(\"/content/gdrive\", force_remount=True).\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "qjL29dLrluWX",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## 8.1. Step 1. Import the processed dataset"
      ]
    },
    {
      "metadata": {
        "id": "AX1kSYtOeokk",
        "colab_type": "code",
        "outputId": "2a102f92-c981-4755-a3b6-f76337aae9b9",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1537
        }
      },
      "cell_type": "code",
      "source": [
        "# Step 1. Import the processed dataset\n",
        "import os\n",
        "from os import walk\n",
        "\n",
        "\n",
        "my_data_file_name = FILE_DIRECTORY + \"DS_ADL_Falls_NEW_181202.txt\"\n",
        "\n",
        "import pandas as pd\n",
        "\n",
        "# Create a data frame and load the data\n",
        "df_ADL_Falls = pd.DataFrame(pd.read_csv(my_data_file_name, sep = ','))\n",
        "\n",
        "df_ADL_Falls.drop('0', axis=1, inplace=True)\n",
        "\n",
        "df_only_ADLs = df_ADL_Falls[df_ADL_Falls.Fall_ADL == \"D\"]\n",
        "df_only_Falls = df_ADL_Falls[df_ADL_Falls.Fall_ADL == \"F\"]\n",
        "\n",
        "# display the data frame\n",
        "print(df_only_ADLs.head())\n",
        "print(df_only_ADLs.tail())\n",
        "print(df_only_Falls.head())\n",
        "print(df_only_Falls.tail())"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "   S1_X  S1_Y  S1_Z  S2_X  S2_Y  S2_Z  S3_X  S3_Y  S3_Z  S1_N_XYZ  \\\n",
            "0   -13  -252   -51   -89   -38   -18   -45 -1020  -172  1.005615   \n",
            "1    -6  -250   -48   -87   -41   -21   -41 -1017  -169  0.994676   \n",
            "2    -9  -247   -50   -84   -43   -24   -38 -1007  -163  0.985041   \n",
            "3    -8  -247   -46   -81   -40   -27   -36 -1005  -163  0.981931   \n",
            "4    -8  -243   -46   -78   -31   -30   -35  -995  -165  0.966582   \n",
            "\n",
            "         ...          S2_AV_X   S2_AV_Y   S2_AV_Z  S3_N_HOR  S3_N_VER  \\\n",
            "0        ...        -5.432129 -2.319336 -1.098633  1.010157  0.173622   \n",
            "1        ...        -5.310059 -2.502441 -1.281738  1.006783  0.169826   \n",
            "2        ...        -5.126953 -2.624512 -1.464844  0.996198  0.163448   \n",
            "3        ...        -4.943848 -2.441406 -1.647949  0.994270  0.163016   \n",
            "4        ...        -4.760742 -1.892090 -1.831055  0.984949  0.164718   \n",
            "\n",
            "   S3_N_XYZ  Age_Cat  Fall_ADL Act_Type              File  \n",
            "0  1.011112       SA         D      D09  D09_SA09_R01.txt  \n",
            "1  1.007579       SA         D      D09  D09_SA09_R01.txt  \n",
            "2  0.996889       SA         D      D09  D09_SA09_R01.txt  \n",
            "3  0.994891       SA         D      D09  D09_SA09_R01.txt  \n",
            "4  0.985542       SA         D      D09  D09_SA09_R01.txt  \n",
            "\n",
            "[5 rows x 22 columns]\n",
            "         S1_X  S1_Y  S1_Z  S2_X  S2_Y  S2_Z  S3_X  S3_Y  S3_Z  S1_N_XYZ  \\\n",
            "1080593  -307  -392  -137  -773  -255   803 -1108 -1423  -579  2.017237   \n",
            "1080594  -359  -462  -212  -259  -387  1023 -1304 -1766  -828  2.430896   \n",
            "1080595  -430  -567  -262   -89  -564  1297 -1573 -2207 -1097  2.962146   \n",
            "1080596  -436  -699  -124  -325  -676  1748 -1688 -2681  -726  3.254338   \n",
            "1080597  -364  -841    41  -493  -601  2273 -1447 -3196    -6  3.583243   \n",
            "\n",
            "               ...           S2_AV_X    S2_AV_Y     S2_AV_Z  S3_N_HOR  \\\n",
            "1080593        ...        -47.180176 -15.563965   49.011230  1.500278   \n",
            "1080594        ...        -15.808105 -23.620605   62.438965  1.904758   \n",
            "1080595        ...         -5.432129 -34.423828   79.162598  2.406837   \n",
            "1080596        ...        -19.836426 -41.259766  106.689453  2.712460   \n",
            "1080597        ...        -30.090332 -36.682129  138.732910  3.121099   \n",
            "\n",
            "         S3_N_VER  S3_N_XYZ  Age_Cat  Fall_ADL Act_Type              File  \n",
            "1080593  1.220861  1.849764       SA         D      D06  D06_SA23_R03.txt  \n",
            "1080594  1.508465  2.291232       SA         D      D06  D06_SA23_R03.txt  \n",
            "1080595  1.872796  2.855270       SA         D      D06  D06_SA23_R03.txt  \n",
            "1080596  1.794437  3.174081       SA         D      D06  D06_SA23_R03.txt  \n",
            "1080597  1.413098  3.426087       SA         D      D06  D06_SA23_R03.txt  \n",
            "\n",
            "[5 rows x 22 columns]\n",
            "         S1_X  S1_Y  S1_Z  S2_X  S2_Y  S2_Z  S3_X  S3_Y  S3_Z  S1_N_XYZ  \\\n",
            "1080598   -18  -221   -75    34    22   445   -40  -833  -341  0.914346   \n",
            "1080599   -32  -211   -73   134    16   467  -101  -807  -330  0.881065   \n",
            "1080600   -46  -207   -72   211    13   475  -156  -799  -314  0.874765   \n",
            "1080601   -58  -203   -67   264    15   477  -196  -793  -311  0.865232   \n",
            "1080602   -63  -204   -65   293    20   468  -227  -790  -291  0.871803   \n",
            "\n",
            "               ...           S2_AV_X   S2_AV_Y    S2_AV_Z  S3_N_HOR  S3_N_VER  \\\n",
            "1080598        ...          2.075195  1.342773  27.160645  0.878998  0.335291   \n",
            "1080599        ...          8.178711  0.976562  28.503418  0.851431  0.337022   \n",
            "1080600        ...         12.878418  0.793457  28.991699  0.838365  0.342399   \n",
            "1080601        ...         16.113281  0.915527  29.113770  0.831840  0.358994   \n",
            "1080602        ...         17.883301  1.220703  28.564453  0.822159  0.360416   \n",
            "\n",
            "         S3_N_XYZ  Age_Cat  Fall_ADL Act_Type              File  \n",
            "1080598  0.879866       SA         F      F03  F03_SA23_R04.txt  \n",
            "1080599  0.857125       SA         F      F03  F03_SA23_R04.txt  \n",
            "1080600  0.852094       SA         F      F03  F03_SA23_R04.txt  \n",
            "1080601  0.853577       SA         F      F03  F03_SA23_R04.txt  \n",
            "1080602  0.851521       SA         F      F03  F03_SA23_R04.txt  \n",
            "\n",
            "[5 rows x 22 columns]\n",
            "         S1_X  S1_Y  S1_Z  S2_X  S2_Y  S2_Z  S3_X  S3_Y  S3_Z  S1_N_XYZ  \\\n",
            "2161191   234   -84    32  -182   393   231   932  -289    87  0.979184   \n",
            "2161192   233   -83    37  -190   407   219   937  -297    92  0.976930   \n",
            "2161193   238   -84    32  -190   419   206   942  -303    94  0.993786   \n",
            "2161194   237   -87    35  -185   426   189   948  -304   101  0.995619   \n",
            "2161195   237   -88    33  -174   431   173   947  -305   100  0.995918   \n",
            "\n",
            "               ...           S2_AV_X    S2_AV_Y    S2_AV_Z  S3_N_HOR  \\\n",
            "2161191        ...        -11.108398  23.986816  14.099121  0.294737   \n",
            "2161192        ...        -11.596680  24.841309  13.366699  0.303636   \n",
            "2161193        ...        -11.596680  25.573730  12.573242  0.309811   \n",
            "2161194        ...        -11.291504  26.000977  11.535645  0.312831   \n",
            "2161195        ...        -10.620117  26.306152  10.559082  0.313452   \n",
            "\n",
            "         S3_N_VER  S3_N_XYZ  Age_Cat  Fall_ADL Act_Type              File  \n",
            "2161191  0.914113  0.956689       SA         F      F03  F03_SA23_R03.txt  \n",
            "2161192  0.919439  0.964101       SA         F      F03  F03_SA23_R03.txt  \n",
            "2161193  0.924491  0.970690       SA         F      F03  F03_SA23_R03.txt  \n",
            "2161194  0.931021  0.977207       SA         F      F03  F03_SA23_R03.txt  \n",
            "2161195  0.929946  0.976481       SA         F      F03  F03_SA23_R03.txt  \n",
            "\n",
            "[5 rows x 22 columns]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "czSiPYjUl5gH",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "### Step 1.1 Check the size of dataset (each type of event: Falls & ADLs)"
      ]
    },
    {
      "metadata": {
        "id": "M1SnGz5kx3sP",
        "colab_type": "code",
        "outputId": "b8417363-ca62-44de-88de-b8eba16b1027",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1606
        }
      },
      "cell_type": "code",
      "source": [
        "# Step 1.1 Check the size of dataset (each type of event: Falls & ADLs)\n",
        "# show the data frame\n",
        "print(\"df_only_ADLs.head()\")\n",
        "print(df_only_ADLs.head())\n",
        "print(\"df_only_ADLs.tail()\")\n",
        "print(df_only_ADLs.tail())\n",
        "print(\"df_only_Falls.head()\")\n",
        "print(df_only_Falls.head())\n",
        "print(\"df_only_Falls.tail()\")\n",
        "print(df_only_Falls.tail())"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "df_only_ADLs.head()\n",
            "   S1_X  S1_Y  S1_Z  S2_X  S2_Y  S2_Z  S3_X  S3_Y  S3_Z  S1_N_XYZ  \\\n",
            "0   -13  -252   -51   -89   -38   -18   -45 -1020  -172  1.005615   \n",
            "1    -6  -250   -48   -87   -41   -21   -41 -1017  -169  0.994676   \n",
            "2    -9  -247   -50   -84   -43   -24   -38 -1007  -163  0.985041   \n",
            "3    -8  -247   -46   -81   -40   -27   -36 -1005  -163  0.981931   \n",
            "4    -8  -243   -46   -78   -31   -30   -35  -995  -165  0.966582   \n",
            "\n",
            "         ...          S2_AV_X   S2_AV_Y   S2_AV_Z  S3_N_HOR  S3_N_VER  \\\n",
            "0        ...        -5.432129 -2.319336 -1.098633  1.010157  0.173622   \n",
            "1        ...        -5.310059 -2.502441 -1.281738  1.006783  0.169826   \n",
            "2        ...        -5.126953 -2.624512 -1.464844  0.996198  0.163448   \n",
            "3        ...        -4.943848 -2.441406 -1.647949  0.994270  0.163016   \n",
            "4        ...        -4.760742 -1.892090 -1.831055  0.984949  0.164718   \n",
            "\n",
            "   S3_N_XYZ  Age_Cat  Fall_ADL Act_Type              File  \n",
            "0  1.011112       SA         D      D09  D09_SA09_R01.txt  \n",
            "1  1.007579       SA         D      D09  D09_SA09_R01.txt  \n",
            "2  0.996889       SA         D      D09  D09_SA09_R01.txt  \n",
            "3  0.994891       SA         D      D09  D09_SA09_R01.txt  \n",
            "4  0.985542       SA         D      D09  D09_SA09_R01.txt  \n",
            "\n",
            "[5 rows x 22 columns]\n",
            "df_only_ADLs.tail()\n",
            "         S1_X  S1_Y  S1_Z  S2_X  S2_Y  S2_Z  S3_X  S3_Y  S3_Z  S1_N_XYZ  \\\n",
            "1080593  -307  -392  -137  -773  -255   803 -1108 -1423  -579  2.017237   \n",
            "1080594  -359  -462  -212  -259  -387  1023 -1304 -1766  -828  2.430896   \n",
            "1080595  -430  -567  -262   -89  -564  1297 -1573 -2207 -1097  2.962146   \n",
            "1080596  -436  -699  -124  -325  -676  1748 -1688 -2681  -726  3.254338   \n",
            "1080597  -364  -841    41  -493  -601  2273 -1447 -3196    -6  3.583243   \n",
            "\n",
            "               ...           S2_AV_X    S2_AV_Y     S2_AV_Z  S3_N_HOR  \\\n",
            "1080593        ...        -47.180176 -15.563965   49.011230  1.500278   \n",
            "1080594        ...        -15.808105 -23.620605   62.438965  1.904758   \n",
            "1080595        ...         -5.432129 -34.423828   79.162598  2.406837   \n",
            "1080596        ...        -19.836426 -41.259766  106.689453  2.712460   \n",
            "1080597        ...        -30.090332 -36.682129  138.732910  3.121099   \n",
            "\n",
            "         S3_N_VER  S3_N_XYZ  Age_Cat  Fall_ADL Act_Type              File  \n",
            "1080593  1.220861  1.849764       SA         D      D06  D06_SA23_R03.txt  \n",
            "1080594  1.508465  2.291232       SA         D      D06  D06_SA23_R03.txt  \n",
            "1080595  1.872796  2.855270       SA         D      D06  D06_SA23_R03.txt  \n",
            "1080596  1.794437  3.174081       SA         D      D06  D06_SA23_R03.txt  \n",
            "1080597  1.413098  3.426087       SA         D      D06  D06_SA23_R03.txt  \n",
            "\n",
            "[5 rows x 22 columns]\n",
            "df_only_Falls.head()\n",
            "         S1_X  S1_Y  S1_Z  S2_X  S2_Y  S2_Z  S3_X  S3_Y  S3_Z  S1_N_XYZ  \\\n",
            "1080598   -18  -221   -75    34    22   445   -40  -833  -341  0.914346   \n",
            "1080599   -32  -211   -73   134    16   467  -101  -807  -330  0.881065   \n",
            "1080600   -46  -207   -72   211    13   475  -156  -799  -314  0.874765   \n",
            "1080601   -58  -203   -67   264    15   477  -196  -793  -311  0.865232   \n",
            "1080602   -63  -204   -65   293    20   468  -227  -790  -291  0.871803   \n",
            "\n",
            "               ...           S2_AV_X   S2_AV_Y    S2_AV_Z  S3_N_HOR  S3_N_VER  \\\n",
            "1080598        ...          2.075195  1.342773  27.160645  0.878998  0.335291   \n",
            "1080599        ...          8.178711  0.976562  28.503418  0.851431  0.337022   \n",
            "1080600        ...         12.878418  0.793457  28.991699  0.838365  0.342399   \n",
            "1080601        ...         16.113281  0.915527  29.113770  0.831840  0.358994   \n",
            "1080602        ...         17.883301  1.220703  28.564453  0.822159  0.360416   \n",
            "\n",
            "         S3_N_XYZ  Age_Cat  Fall_ADL Act_Type              File  \n",
            "1080598  0.879866       SA         F      F03  F03_SA23_R04.txt  \n",
            "1080599  0.857125       SA         F      F03  F03_SA23_R04.txt  \n",
            "1080600  0.852094       SA         F      F03  F03_SA23_R04.txt  \n",
            "1080601  0.853577       SA         F      F03  F03_SA23_R04.txt  \n",
            "1080602  0.851521       SA         F      F03  F03_SA23_R04.txt  \n",
            "\n",
            "[5 rows x 22 columns]\n",
            "df_only_Falls.tail()\n",
            "         S1_X  S1_Y  S1_Z  S2_X  S2_Y  S2_Z  S3_X  S3_Y  S3_Z  S1_N_XYZ  \\\n",
            "2161191   234   -84    32  -182   393   231   932  -289    87  0.979184   \n",
            "2161192   233   -83    37  -190   407   219   937  -297    92  0.976930   \n",
            "2161193   238   -84    32  -190   419   206   942  -303    94  0.993786   \n",
            "2161194   237   -87    35  -185   426   189   948  -304   101  0.995619   \n",
            "2161195   237   -88    33  -174   431   173   947  -305   100  0.995918   \n",
            "\n",
            "               ...           S2_AV_X    S2_AV_Y    S2_AV_Z  S3_N_HOR  \\\n",
            "2161191        ...        -11.108398  23.986816  14.099121  0.294737   \n",
            "2161192        ...        -11.596680  24.841309  13.366699  0.303636   \n",
            "2161193        ...        -11.596680  25.573730  12.573242  0.309811   \n",
            "2161194        ...        -11.291504  26.000977  11.535645  0.312831   \n",
            "2161195        ...        -10.620117  26.306152  10.559082  0.313452   \n",
            "\n",
            "         S3_N_VER  S3_N_XYZ  Age_Cat  Fall_ADL Act_Type              File  \n",
            "2161191  0.914113  0.956689       SA         F      F03  F03_SA23_R03.txt  \n",
            "2161192  0.919439  0.964101       SA         F      F03  F03_SA23_R03.txt  \n",
            "2161193  0.924491  0.970690       SA         F      F03  F03_SA23_R03.txt  \n",
            "2161194  0.931021  0.977207       SA         F      F03  F03_SA23_R03.txt  \n",
            "2161195  0.929946  0.976481       SA         F      F03  F03_SA23_R03.txt  \n",
            "\n",
            "[5 rows x 22 columns]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "353qDhcimAIu",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "### Step 1.2 Shape of datasets"
      ]
    },
    {
      "metadata": {
        "id": "8ZhYQqGXyy8T",
        "colab_type": "code",
        "outputId": "1dc7f9c4-4e4b-4ce9-e874-7efc659a13a7",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 86
        }
      },
      "cell_type": "code",
      "source": [
        "# Step 1.2 Shape of datasets\n",
        "print(\"df_only_ADLs\")\n",
        "print(df_only_ADLs.shape)\n",
        "print(\"df_only_Falls\")\n",
        "print(df_only_Falls.shape)\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "df_only_ADLs\n",
            "(1080598, 22)\n",
            "df_only_Falls\n",
            "(1080598, 22)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "d4bkQ7wmmDMr",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## 8.2. Step 2. Prepare a DataFrame with the relevant features "
      ]
    },
    {
      "metadata": {
        "id": "-10FT6bEeoIB",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "# Step 2. Prepare a DataFrame with the relevant features \n",
        "# 1st trial: Using only Sensor 1 (X, Y, Z)\n",
        "\n",
        "#series = pd.DataFrame(df_only_ADLs)\n",
        "#series100 = df_only_ADLs.loc[0:100, [\"S1_X\",\"S1_Y\",\"S1_Z\",\"S2_X\",\"S2_Y\",\"S2_Z\",\"S3_X\",\"S3_Y\",\"S3_Z\"]]\n",
        "series = df_only_Falls.loc[:, [\"S1_X\",\"S1_Y\",\"S1_Z\"]]"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "02mzXdwsj8PZ",
        "colab_type": "code",
        "outputId": "c6fc0838-c1c3-490d-81e5-bc61f098a7b9",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 296
        }
      },
      "cell_type": "code",
      "source": [
        "series.describe()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>S1_X</th>\n",
              "      <th>S1_Y</th>\n",
              "      <th>S1_Z</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>count</th>\n",
              "      <td>1.080598e+06</td>\n",
              "      <td>1.080598e+06</td>\n",
              "      <td>1.080598e+06</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>mean</th>\n",
              "      <td>-8.107005e+00</td>\n",
              "      <td>-1.193407e+02</td>\n",
              "      <td>-5.099350e+01</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>std</th>\n",
              "      <td>1.751743e+02</td>\n",
              "      <td>1.880731e+02</td>\n",
              "      <td>1.733202e+02</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>min</th>\n",
              "      <td>-4.096000e+03</td>\n",
              "      <td>-4.096000e+03</td>\n",
              "      <td>-4.096000e+03</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>25%</th>\n",
              "      <td>-4.400000e+01</td>\n",
              "      <td>-2.370000e+02</td>\n",
              "      <td>-1.460000e+02</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>50%</th>\n",
              "      <td>1.000000e+00</td>\n",
              "      <td>-1.560000e+02</td>\n",
              "      <td>-5.600000e+01</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>75%</th>\n",
              "      <td>3.700000e+01</td>\n",
              "      <td>6.000000e+00</td>\n",
              "      <td>3.300000e+01</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>max</th>\n",
              "      <td>4.094000e+03</td>\n",
              "      <td>4.092000e+03</td>\n",
              "      <td>4.091000e+03</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "               S1_X          S1_Y          S1_Z\n",
              "count  1.080598e+06  1.080598e+06  1.080598e+06\n",
              "mean  -8.107005e+00 -1.193407e+02 -5.099350e+01\n",
              "std    1.751743e+02  1.880731e+02  1.733202e+02\n",
              "min   -4.096000e+03 -4.096000e+03 -4.096000e+03\n",
              "25%   -4.400000e+01 -2.370000e+02 -1.460000e+02\n",
              "50%    1.000000e+00 -1.560000e+02 -5.600000e+01\n",
              "75%    3.700000e+01  6.000000e+00  3.300000e+01\n",
              "max    4.094000e+03  4.092000e+03  4.091000e+03"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 6
        }
      ]
    },
    {
      "metadata": {
        "id": "vgZrw_SnmK-0",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## 8.3. Step 3. Scale the data. Impotant to use data as input of LSTM"
      ]
    },
    {
      "metadata": {
        "id": "_YBEafHHkm1i",
        "colab_type": "code",
        "outputId": "de192fd0-359c-421f-b151-563f0663d46d",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 313
        }
      },
      "cell_type": "code",
      "source": [
        "# Step 3. Scale the data. Impotant to use data as input of LSTM\n",
        "from sklearn.preprocessing import MinMaxScaler\n",
        "\n",
        "scaler = MinMaxScaler()\n",
        "scaler.fit(series)\n",
        "scaled_Series = scaler.transform(series)\n",
        "print(scaled_Series.shape)\n",
        "df_Scaled_3col = pd.DataFrame(scaled_Series)\n",
        "df_Scaled_3col.columns = series.columns\n",
        "df_Scaled_3col.describe()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(1080598, 3)\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>S1_X</th>\n",
              "      <th>S1_Y</th>\n",
              "      <th>S1_Z</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>count</th>\n",
              "      <td>1.080598e+06</td>\n",
              "      <td>1.080598e+06</td>\n",
              "      <td>1.080598e+06</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>mean</th>\n",
              "      <td>4.991322e-01</td>\n",
              "      <td>4.856692e-01</td>\n",
              "      <td>4.940768e-01</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>std</th>\n",
              "      <td>2.138880e-02</td>\n",
              "      <td>2.296936e-02</td>\n",
              "      <td>2.117017e-02</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>min</th>\n",
              "      <td>0.000000e+00</td>\n",
              "      <td>0.000000e+00</td>\n",
              "      <td>0.000000e+00</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>25%</th>\n",
              "      <td>4.947497e-01</td>\n",
              "      <td>4.712995e-01</td>\n",
              "      <td>4.824722e-01</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>50%</th>\n",
              "      <td>5.002442e-01</td>\n",
              "      <td>4.811920e-01</td>\n",
              "      <td>4.934652e-01</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>75%</th>\n",
              "      <td>5.046398e-01</td>\n",
              "      <td>5.009770e-01</td>\n",
              "      <td>5.043361e-01</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>max</th>\n",
              "      <td>1.000000e+00</td>\n",
              "      <td>1.000000e+00</td>\n",
              "      <td>1.000000e+00</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "               S1_X          S1_Y          S1_Z\n",
              "count  1.080598e+06  1.080598e+06  1.080598e+06\n",
              "mean   4.991322e-01  4.856692e-01  4.940768e-01\n",
              "std    2.138880e-02  2.296936e-02  2.117017e-02\n",
              "min    0.000000e+00  0.000000e+00  0.000000e+00\n",
              "25%    4.947497e-01  4.712995e-01  4.824722e-01\n",
              "50%    5.002442e-01  4.811920e-01  4.934652e-01\n",
              "75%    5.046398e-01  5.009770e-01  5.043361e-01\n",
              "max    1.000000e+00  1.000000e+00  1.000000e+00"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 7
        }
      ]
    },
    {
      "metadata": {
        "id": "N1fFfeXrN4BF",
        "colab_type": "code",
        "outputId": "c3af28ab-892d-4f2e-d5d3-8fe8bfb19589",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 51
        }
      },
      "cell_type": "code",
      "source": [
        "# For memory reasons keep only 50% of records\n",
        "print(df_Scaled_3col.shape)\n",
        "df_Scaled_3col = pd.DataFrame(df_Scaled_3col.iloc[:500000,:])\n",
        "print(df_Scaled_3col.shape)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(1080598, 3)\n",
            "(500000, 3)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "lwHETpy1mRoA",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "### Step 3.1 shift the date 100 steps"
      ]
    },
    {
      "metadata": {
        "id": "Cj5X3Nshe-KT",
        "colab_type": "code",
        "outputId": "b1285fbd-9adc-411c-a6eb-a88cfe3f9ae0",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1761
        }
      },
      "cell_type": "code",
      "source": [
        "# Step 3.1 shift the date 100 steps\n",
        "def shift_data(my_data, nr_steps_to_shift=100, starting_step=0, txt_shift = \"Step:\"):\n",
        "\n",
        "  window_size =  nr_steps_to_shift # número de pasos que usaremos en la LSTM\n",
        "\n",
        "  series2 = my_data.copy()\n",
        "  shifted = series2.shift(-(starting_step+1))\n",
        "  print(txt_shift + str(1)+\"/\"+str(window_size))\n",
        "  \n",
        "  if window_size >1:\n",
        "    for index in range(window_size-1):\n",
        "      shifted = pd.concat([shifted, series2.shift(-(starting_step+index+2))], axis=1)\n",
        "      print(txt_shift + str(index+2)+\"/\"+str(window_size))\n",
        "    \n",
        "  del series2\n",
        "  \n",
        "  return shifted    \n",
        "  \n",
        "df_Scaled1 = shift_data(df_Scaled_3col, 100, txt_shift=\"1-bloque, step:\")\n",
        "\n",
        "print(df_Scaled1.shape)\n",
        "\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "1-bloque, step:1/100\n",
            "1-bloque, step:2/100\n",
            "1-bloque, step:3/100\n",
            "1-bloque, step:4/100\n",
            "1-bloque, step:5/100\n",
            "1-bloque, step:6/100\n",
            "1-bloque, step:7/100\n",
            "1-bloque, step:8/100\n",
            "1-bloque, step:9/100\n",
            "1-bloque, step:10/100\n",
            "1-bloque, step:11/100\n",
            "1-bloque, step:12/100\n",
            "1-bloque, step:13/100\n",
            "1-bloque, step:14/100\n",
            "1-bloque, step:15/100\n",
            "1-bloque, step:16/100\n",
            "1-bloque, step:17/100\n",
            "1-bloque, step:18/100\n",
            "1-bloque, step:19/100\n",
            "1-bloque, step:20/100\n",
            "1-bloque, step:21/100\n",
            "1-bloque, step:22/100\n",
            "1-bloque, step:23/100\n",
            "1-bloque, step:24/100\n",
            "1-bloque, step:25/100\n",
            "1-bloque, step:26/100\n",
            "1-bloque, step:27/100\n",
            "1-bloque, step:28/100\n",
            "1-bloque, step:29/100\n",
            "1-bloque, step:30/100\n",
            "1-bloque, step:31/100\n",
            "1-bloque, step:32/100\n",
            "1-bloque, step:33/100\n",
            "1-bloque, step:34/100\n",
            "1-bloque, step:35/100\n",
            "1-bloque, step:36/100\n",
            "1-bloque, step:37/100\n",
            "1-bloque, step:38/100\n",
            "1-bloque, step:39/100\n",
            "1-bloque, step:40/100\n",
            "1-bloque, step:41/100\n",
            "1-bloque, step:42/100\n",
            "1-bloque, step:43/100\n",
            "1-bloque, step:44/100\n",
            "1-bloque, step:45/100\n",
            "1-bloque, step:46/100\n",
            "1-bloque, step:47/100\n",
            "1-bloque, step:48/100\n",
            "1-bloque, step:49/100\n",
            "1-bloque, step:50/100\n",
            "1-bloque, step:51/100\n",
            "1-bloque, step:52/100\n",
            "1-bloque, step:53/100\n",
            "1-bloque, step:54/100\n",
            "1-bloque, step:55/100\n",
            "1-bloque, step:56/100\n",
            "1-bloque, step:57/100\n",
            "1-bloque, step:58/100\n",
            "1-bloque, step:59/100\n",
            "1-bloque, step:60/100\n",
            "1-bloque, step:61/100\n",
            "1-bloque, step:62/100\n",
            "1-bloque, step:63/100\n",
            "1-bloque, step:64/100\n",
            "1-bloque, step:65/100\n",
            "1-bloque, step:66/100\n",
            "1-bloque, step:67/100\n",
            "1-bloque, step:68/100\n",
            "1-bloque, step:69/100\n",
            "1-bloque, step:70/100\n",
            "1-bloque, step:71/100\n",
            "1-bloque, step:72/100\n",
            "1-bloque, step:73/100\n",
            "1-bloque, step:74/100\n",
            "1-bloque, step:75/100\n",
            "1-bloque, step:76/100\n",
            "1-bloque, step:77/100\n",
            "1-bloque, step:78/100\n",
            "1-bloque, step:79/100\n",
            "1-bloque, step:80/100\n",
            "1-bloque, step:81/100\n",
            "1-bloque, step:82/100\n",
            "1-bloque, step:83/100\n",
            "1-bloque, step:84/100\n",
            "1-bloque, step:85/100\n",
            "1-bloque, step:86/100\n",
            "1-bloque, step:87/100\n",
            "1-bloque, step:88/100\n",
            "1-bloque, step:89/100\n",
            "1-bloque, step:90/100\n",
            "1-bloque, step:91/100\n",
            "1-bloque, step:92/100\n",
            "1-bloque, step:93/100\n",
            "1-bloque, step:94/100\n",
            "1-bloque, step:95/100\n",
            "1-bloque, step:96/100\n",
            "1-bloque, step:97/100\n",
            "1-bloque, step:98/100\n",
            "1-bloque, step:99/100\n",
            "1-bloque, step:100/100\n",
            "(500000, 300)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "c4FH515-mZEJ",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "### Step 3.1b. Try to append/shift another 100 steps"
      ]
    },
    {
      "metadata": {
        "id": "3icbd3urJv8C",
        "colab_type": "code",
        "outputId": "4f5d77b8-79cc-4cd1-9dee-eeeaf73edab5",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 2521
        }
      },
      "cell_type": "code",
      "source": [
        "# Step 3.1b. Try to append/shift another 100 steps\n",
        "\n",
        "df_Scaled2 = shift_data(df_Scaled_3col, 100, 100, txt_shift=\"2-bloque, step:\")\n",
        "\n",
        "df_Scaled = pd.concat([df_Scaled1, df_Scaled2], axis=1)\n",
        "\n",
        "del df_Scaled1, df_Scaled2\n",
        "\n",
        "print(df_Scaled.shape)\n",
        "print(df_Scaled.head())\n",
        "print(df_Scaled.tail())\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "2-bloque, step:1/100\n",
            "2-bloque, step:2/100\n",
            "2-bloque, step:3/100\n",
            "2-bloque, step:4/100\n",
            "2-bloque, step:5/100\n",
            "2-bloque, step:6/100\n",
            "2-bloque, step:7/100\n",
            "2-bloque, step:8/100\n",
            "2-bloque, step:9/100\n",
            "2-bloque, step:10/100\n",
            "2-bloque, step:11/100\n",
            "2-bloque, step:12/100\n",
            "2-bloque, step:13/100\n",
            "2-bloque, step:14/100\n",
            "2-bloque, step:15/100\n",
            "2-bloque, step:16/100\n",
            "2-bloque, step:17/100\n",
            "2-bloque, step:18/100\n",
            "2-bloque, step:19/100\n",
            "2-bloque, step:20/100\n",
            "2-bloque, step:21/100\n",
            "2-bloque, step:22/100\n",
            "2-bloque, step:23/100\n",
            "2-bloque, step:24/100\n",
            "2-bloque, step:25/100\n",
            "2-bloque, step:26/100\n",
            "2-bloque, step:27/100\n",
            "2-bloque, step:28/100\n",
            "2-bloque, step:29/100\n",
            "2-bloque, step:30/100\n",
            "2-bloque, step:31/100\n",
            "2-bloque, step:32/100\n",
            "2-bloque, step:33/100\n",
            "2-bloque, step:34/100\n",
            "2-bloque, step:35/100\n",
            "2-bloque, step:36/100\n",
            "2-bloque, step:37/100\n",
            "2-bloque, step:38/100\n",
            "2-bloque, step:39/100\n",
            "2-bloque, step:40/100\n",
            "2-bloque, step:41/100\n",
            "2-bloque, step:42/100\n",
            "2-bloque, step:43/100\n",
            "2-bloque, step:44/100\n",
            "2-bloque, step:45/100\n",
            "2-bloque, step:46/100\n",
            "2-bloque, step:47/100\n",
            "2-bloque, step:48/100\n",
            "2-bloque, step:49/100\n",
            "2-bloque, step:50/100\n",
            "2-bloque, step:51/100\n",
            "2-bloque, step:52/100\n",
            "2-bloque, step:53/100\n",
            "2-bloque, step:54/100\n",
            "2-bloque, step:55/100\n",
            "2-bloque, step:56/100\n",
            "2-bloque, step:57/100\n",
            "2-bloque, step:58/100\n",
            "2-bloque, step:59/100\n",
            "2-bloque, step:60/100\n",
            "2-bloque, step:61/100\n",
            "2-bloque, step:62/100\n",
            "2-bloque, step:63/100\n",
            "2-bloque, step:64/100\n",
            "2-bloque, step:65/100\n",
            "2-bloque, step:66/100\n",
            "2-bloque, step:67/100\n",
            "2-bloque, step:68/100\n",
            "2-bloque, step:69/100\n",
            "2-bloque, step:70/100\n",
            "2-bloque, step:71/100\n",
            "2-bloque, step:72/100\n",
            "2-bloque, step:73/100\n",
            "2-bloque, step:74/100\n",
            "2-bloque, step:75/100\n",
            "2-bloque, step:76/100\n",
            "2-bloque, step:77/100\n",
            "2-bloque, step:78/100\n",
            "2-bloque, step:79/100\n",
            "2-bloque, step:80/100\n",
            "2-bloque, step:81/100\n",
            "2-bloque, step:82/100\n",
            "2-bloque, step:83/100\n",
            "2-bloque, step:84/100\n",
            "2-bloque, step:85/100\n",
            "2-bloque, step:86/100\n",
            "2-bloque, step:87/100\n",
            "2-bloque, step:88/100\n",
            "2-bloque, step:89/100\n",
            "2-bloque, step:90/100\n",
            "2-bloque, step:91/100\n",
            "2-bloque, step:92/100\n",
            "2-bloque, step:93/100\n",
            "2-bloque, step:94/100\n",
            "2-bloque, step:95/100\n",
            "2-bloque, step:96/100\n",
            "2-bloque, step:97/100\n",
            "2-bloque, step:98/100\n",
            "2-bloque, step:99/100\n",
            "2-bloque, step:100/100\n",
            "(500000, 600)\n",
            "       S1_X      S1_Y      S1_Z      S1_X      S1_Y      S1_Z      S1_X  \\\n",
            "0  0.496215  0.474475  0.491389  0.494505  0.474963  0.491511  0.493040   \n",
            "1  0.494505  0.474963  0.491511  0.493040  0.475452  0.492122  0.492430   \n",
            "2  0.493040  0.475452  0.492122  0.492430  0.475330  0.492366  0.491697   \n",
            "3  0.492430  0.475330  0.492366  0.491697  0.475452  0.492732  0.491087   \n",
            "4  0.491697  0.475452  0.492732  0.491087  0.475085  0.493099  0.491575   \n",
            "\n",
            "       S1_Y      S1_Z      S1_X    ...         S1_Z      S1_X      S1_Y  \\\n",
            "0  0.475452  0.492122  0.492430    ...     0.475999  0.505495  0.467269   \n",
            "1  0.475330  0.492366  0.491697    ...     0.476609  0.503907  0.471055   \n",
            "2  0.475452  0.492732  0.491087    ...     0.475999  0.501587  0.474841   \n",
            "3  0.475085  0.493099  0.491575    ...     0.476487  0.500488  0.477650   \n",
            "4  0.475574  0.492977  0.492308    ...     0.477831  0.498046  0.480459   \n",
            "\n",
            "       S1_Z      S1_X      S1_Y      S1_Z      S1_X      S1_Y      S1_Z  \n",
            "0  0.476609  0.503907  0.471055  0.475999  0.501587  0.474841  0.476487  \n",
            "1  0.475999  0.501587  0.474841  0.476487  0.500488  0.477650  0.477831  \n",
            "2  0.476487  0.500488  0.477650  0.477831  0.498046  0.480459  0.479174  \n",
            "3  0.477831  0.498046  0.480459  0.479174  0.495482  0.482047  0.480762  \n",
            "4  0.479174  0.495482  0.482047  0.480762  0.493773  0.483390  0.482839  \n",
            "\n",
            "[5 rows x 600 columns]\n",
            "            S1_X      S1_Y      S1_Z      S1_X      S1_Y      S1_Z      S1_X  \\\n",
            "499995  0.492430  0.510503  0.464883  0.492186  0.510381  0.465250  0.492430   \n",
            "499996  0.492186  0.510381  0.465250  0.492430  0.510503  0.465616  0.492552   \n",
            "499997  0.492430  0.510503  0.465616  0.492552  0.510381  0.465861       NaN   \n",
            "499998  0.492552  0.510381  0.465861       NaN       NaN       NaN       NaN   \n",
            "499999       NaN       NaN       NaN       NaN       NaN       NaN       NaN   \n",
            "\n",
            "            S1_Y      S1_Z      S1_X  ...   S1_Z  S1_X  S1_Y  S1_Z  S1_X  \\\n",
            "499995  0.510503  0.465616  0.492552  ...    NaN   NaN   NaN   NaN   NaN   \n",
            "499996  0.510381  0.465861       NaN  ...    NaN   NaN   NaN   NaN   NaN   \n",
            "499997       NaN       NaN       NaN  ...    NaN   NaN   NaN   NaN   NaN   \n",
            "499998       NaN       NaN       NaN  ...    NaN   NaN   NaN   NaN   NaN   \n",
            "499999       NaN       NaN       NaN  ...    NaN   NaN   NaN   NaN   NaN   \n",
            "\n",
            "        S1_Y  S1_Z  S1_X  S1_Y  S1_Z  \n",
            "499995   NaN   NaN   NaN   NaN   NaN  \n",
            "499996   NaN   NaN   NaN   NaN   NaN  \n",
            "499997   NaN   NaN   NaN   NaN   NaN  \n",
            "499998   NaN   NaN   NaN   NaN   NaN  \n",
            "499999   NaN   NaN   NaN   NaN   NaN  \n",
            "\n",
            "[5 rows x 600 columns]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "kE0Sf4Evmc5V",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "### Step 3.2 Rename columns"
      ]
    },
    {
      "metadata": {
        "id": "pNHl_5KCWWGI",
        "colab_type": "code",
        "outputId": "a906c158-331d-4b46-c873-762f4693094d",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 120
        }
      },
      "cell_type": "code",
      "source": [
        "# Step 3.2 Rename columns\n",
        "col_names = list()\n",
        "#col_names = ['S1_X_0','S1_Y_0',\t'S1_Z_0']\n",
        "for i in range(int(len(df_Scaled.columns)/3)):\n",
        "  col_names += ['S1_X_'+ str(i+1),'S1_Y_'+ str(i+1),'S1_Z_'+ str(i+1)]\n",
        "\n",
        "\n",
        "df_Scaled.columns = col_names\n",
        "print(df_Scaled.columns)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Index(['S1_X_1', 'S1_Y_1', 'S1_Z_1', 'S1_X_2', 'S1_Y_2', 'S1_Z_2', 'S1_X_3',\n",
            "       'S1_Y_3', 'S1_Z_3', 'S1_X_4',\n",
            "       ...\n",
            "       'S1_Z_197', 'S1_X_198', 'S1_Y_198', 'S1_Z_198', 'S1_X_199', 'S1_Y_199',\n",
            "       'S1_Z_199', 'S1_X_200', 'S1_Y_200', 'S1_Z_200'],\n",
            "      dtype='object', length=600)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "uA6-NY6zmhWt",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "### Step 3.3 Removing the NA's resulting from the shift"
      ]
    },
    {
      "metadata": {
        "id": "U-jxIkV6YY7C",
        "colab_type": "code",
        "outputId": "3e3d1a56-26ca-4750-8303-8babd94300ac",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 828
        }
      },
      "cell_type": "code",
      "source": [
        "# Step 3.3 Removing the NA's resulting from the shift\n",
        "# As we shifted 100 times, there would be 100 rows with NA's\n",
        "\n",
        "print(df_Scaled.tail())\n",
        "print(df_Scaled.shape)\n",
        "\n",
        "# eliminamos los NA's (resultantes del shift)\n",
        "df_Scaled.dropna(inplace=True)\n",
        "\n",
        "print(\"df_Scaled\")\n",
        "print(df_Scaled.tail())\n",
        "print(df_Scaled.shape)\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "          S1_X_1    S1_Y_1    S1_Z_1    S1_X_2    S1_Y_2    S1_Z_2    S1_X_3  \\\n",
            "499995  0.492430  0.510503  0.464883  0.492186  0.510381  0.465250  0.492430   \n",
            "499996  0.492186  0.510381  0.465250  0.492430  0.510503  0.465616  0.492552   \n",
            "499997  0.492430  0.510503  0.465616  0.492552  0.510381  0.465861       NaN   \n",
            "499998  0.492552  0.510381  0.465861       NaN       NaN       NaN       NaN   \n",
            "499999       NaN       NaN       NaN       NaN       NaN       NaN       NaN   \n",
            "\n",
            "          S1_Y_3    S1_Z_3    S1_X_4    ...     S1_Z_197  S1_X_198  S1_Y_198  \\\n",
            "499995  0.510503  0.465616  0.492552    ...          NaN       NaN       NaN   \n",
            "499996  0.510381  0.465861       NaN    ...          NaN       NaN       NaN   \n",
            "499997       NaN       NaN       NaN    ...          NaN       NaN       NaN   \n",
            "499998       NaN       NaN       NaN    ...          NaN       NaN       NaN   \n",
            "499999       NaN       NaN       NaN    ...          NaN       NaN       NaN   \n",
            "\n",
            "        S1_Z_198  S1_X_199  S1_Y_199  S1_Z_199  S1_X_200  S1_Y_200  S1_Z_200  \n",
            "499995       NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n",
            "499996       NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n",
            "499997       NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n",
            "499998       NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n",
            "499999       NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n",
            "\n",
            "[5 rows x 600 columns]\n",
            "(500000, 600)\n",
            "df_Scaled\n",
            "          S1_X_1    S1_Y_1    S1_Z_1    S1_X_2    S1_Y_2    S1_Z_2    S1_X_3  \\\n",
            "499795  0.524908  0.477406  0.404544  0.521490  0.471299  0.410529  0.529792   \n",
            "499796  0.521490  0.471299  0.410529  0.529792  0.466048  0.417735  0.530647   \n",
            "499797  0.529792  0.466048  0.417735  0.530647  0.460674  0.423965  0.519048   \n",
            "499798  0.530647  0.460674  0.423965  0.519048  0.454079  0.433370  0.504884   \n",
            "499799  0.519048  0.454079  0.433370  0.504884  0.450537  0.440332  0.491209   \n",
            "\n",
            "          S1_Y_3    S1_Z_3    S1_X_4    ...     S1_Z_197  S1_X_198  S1_Y_198  \\\n",
            "499795  0.466048  0.417735  0.530647    ...     0.464883  0.492430  0.509404   \n",
            "499796  0.460674  0.423965  0.519048    ...     0.465372  0.492430  0.510381   \n",
            "499797  0.454079  0.433370  0.504884    ...     0.465005  0.492063  0.510137   \n",
            "499798  0.450537  0.440332  0.491209    ...     0.465372  0.492430  0.510503   \n",
            "499799  0.455911  0.445218  0.484982    ...     0.464883  0.492186  0.510381   \n",
            "\n",
            "        S1_Z_198  S1_X_199  S1_Y_199  S1_Z_199  S1_X_200  S1_Y_200  S1_Z_200  \n",
            "499795  0.465372  0.492430  0.510381  0.465005  0.492063  0.510137  0.465372  \n",
            "499796  0.465005  0.492063  0.510137  0.465372  0.492430  0.510503  0.464883  \n",
            "499797  0.465372  0.492430  0.510503  0.464883  0.492186  0.510381  0.465250  \n",
            "499798  0.464883  0.492186  0.510381  0.465250  0.492430  0.510503  0.465616  \n",
            "499799  0.465250  0.492430  0.510503  0.465616  0.492552  0.510381  0.465861  \n",
            "\n",
            "[5 rows x 600 columns]\n",
            "(499800, 600)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "Creu6DoUml8Q",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "### Step 3.4 Separate the columns of features (x) and prediction (y)"
      ]
    },
    {
      "metadata": {
        "id": "o50UDmp4sfAI",
        "colab_type": "code",
        "outputId": "dbc7f994-2450-4e24-c52f-ff3189140edb",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 846
        }
      },
      "cell_type": "code",
      "source": [
        "# Step 3.4 Separate the columns of features (x) and prediction (y)\n",
        "# In this case we take into account that the number of steps = 100\n",
        "\n",
        "df_Scaled_y = pd.DataFrame(df_Scaled.iloc[:,-300:])\n",
        "df_Scaled_x = pd.DataFrame(df_Scaled.iloc[:,:-300])\n",
        "\n",
        "print(\"df_Scaled_x\")\n",
        "print(df_Scaled_x.head())\n",
        "print(df_Scaled_x.shape)\n",
        "print(\"df_Scaled_y\")\n",
        "print(df_Scaled_y.head())\n",
        "print(df_Scaled_y.shape)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "df_Scaled_x\n",
            "     S1_X_1    S1_Y_1    S1_Z_1    S1_X_2    S1_Y_2    S1_Z_2    S1_X_3  \\\n",
            "0  0.496215  0.474475  0.491389  0.494505  0.474963  0.491511  0.493040   \n",
            "1  0.494505  0.474963  0.491511  0.493040  0.475452  0.492122  0.492430   \n",
            "2  0.493040  0.475452  0.492122  0.492430  0.475330  0.492366  0.491697   \n",
            "3  0.492430  0.475330  0.492366  0.491697  0.475452  0.492732  0.491087   \n",
            "4  0.491697  0.475452  0.492732  0.491087  0.475085  0.493099  0.491575   \n",
            "\n",
            "     S1_Y_3    S1_Z_3    S1_X_4    ...      S1_Z_97   S1_X_98   S1_Y_98  \\\n",
            "0  0.475452  0.492122  0.492430    ...     0.488946  0.500122  0.472521   \n",
            "1  0.475330  0.492366  0.491697    ...     0.489557  0.498901  0.470689   \n",
            "2  0.475452  0.492732  0.491087    ...     0.489801  0.497558  0.468735   \n",
            "3  0.475085  0.493099  0.491575    ...     0.489923  0.497070  0.467025   \n",
            "4  0.475574  0.492977  0.492308    ...     0.490412  0.495849  0.465559   \n",
            "\n",
            "    S1_Z_98   S1_X_99   S1_Y_99   S1_Z_99  S1_X_100  S1_Y_100  S1_Z_100  \n",
            "0  0.489557  0.498901  0.470689  0.489801  0.497558  0.468735  0.489923  \n",
            "1  0.489801  0.497558  0.468735  0.489923  0.497070  0.467025  0.490412  \n",
            "2  0.489923  0.497070  0.467025  0.490412  0.495849  0.465559  0.490289  \n",
            "3  0.490412  0.495849  0.465559  0.490289  0.495116  0.464460  0.491267  \n",
            "4  0.490289  0.495116  0.464460  0.491267  0.494750  0.464216  0.490778  \n",
            "\n",
            "[5 rows x 300 columns]\n",
            "(499800, 300)\n",
            "df_Scaled_y\n",
            "   S1_X_101  S1_Y_101  S1_Z_101  S1_X_102  S1_Y_102  S1_Z_102  S1_X_103  \\\n",
            "0  0.497070  0.467025  0.490412  0.495849  0.465559  0.490289  0.495116   \n",
            "1  0.495849  0.465559  0.490289  0.495116  0.464460  0.491267  0.494750   \n",
            "2  0.495116  0.464460  0.491267  0.494750  0.464216  0.490778  0.494261   \n",
            "3  0.494750  0.464216  0.490778  0.494261  0.464582  0.490900  0.494017   \n",
            "4  0.494261  0.464582  0.490900  0.494017  0.465315  0.491022  0.494139   \n",
            "\n",
            "   S1_Y_103  S1_Z_103  S1_X_104    ...     S1_Z_197  S1_X_198  S1_Y_198  \\\n",
            "0  0.464460  0.491267  0.494750    ...     0.475999  0.505495  0.467269   \n",
            "1  0.464216  0.490778  0.494261    ...     0.476609  0.503907  0.471055   \n",
            "2  0.464582  0.490900  0.494017    ...     0.475999  0.501587  0.474841   \n",
            "3  0.465315  0.491022  0.494139    ...     0.476487  0.500488  0.477650   \n",
            "4  0.466781  0.491144  0.494628    ...     0.477831  0.498046  0.480459   \n",
            "\n",
            "   S1_Z_198  S1_X_199  S1_Y_199  S1_Z_199  S1_X_200  S1_Y_200  S1_Z_200  \n",
            "0  0.476609  0.503907  0.471055  0.475999  0.501587  0.474841  0.476487  \n",
            "1  0.475999  0.501587  0.474841  0.476487  0.500488  0.477650  0.477831  \n",
            "2  0.476487  0.500488  0.477650  0.477831  0.498046  0.480459  0.479174  \n",
            "3  0.477831  0.498046  0.480459  0.479174  0.495482  0.482047  0.480762  \n",
            "4  0.479174  0.495482  0.482047  0.480762  0.493773  0.483390  0.482839  \n",
            "\n",
            "[5 rows x 300 columns]\n",
            "(499800, 300)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "iGpyGQJNf0YL",
        "colab_type": "code",
        "outputId": "547a433a-bfa0-48b4-b882-1690b6ecbad3",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 155
        }
      },
      "cell_type": "code",
      "source": [
        "# import numpy\n",
        "import numpy as np\n",
        "\n",
        "# dividimos el dataset para training y test:\n",
        "n_train = int(df_Scaled_y.shape[0]*0.5)\n",
        "n_val = int(df_Scaled_y.shape[0]*0.3)\n",
        "print(\"n_train:\" + str(n_train))\n",
        "print(\"n_val:\" + str(n_val))\n",
        "\n",
        "train_x = np.array(df_Scaled_x.iloc[:n_train, :])\n",
        "train_y = np.array(df_Scaled_y[:n_train])\n",
        "val_x = np.array(df_Scaled_x.iloc[n_train:n_train+n_val, :])\n",
        "val_y = np.array(df_Scaled_y[n_train:n_train+n_val])\n",
        "test_x = np.array(df_Scaled_x.iloc[n_train+n_val:, :])\n",
        "test_y = np.array(df_Scaled_y[n_train+n_val:])\n",
        "\n",
        "# reshape input to be 3D [samples, timesteps, features]\n",
        "train_x = train_x.reshape((train_x.shape[0], 100, 3))\n",
        "val_x = val_x.reshape((val_x.shape[0], 100, 3))\n",
        "test_x = test_x.reshape((test_x.shape[0], 100, 3))\n",
        "\n",
        "train_y = train_y.reshape((train_y.shape[0], 100, 3))\n",
        "val_y = val_y.reshape((val_y.shape[0], 100, 3))\n",
        "test_y = test_y.reshape((test_y.shape[0], 100, 3))\n",
        "\n",
        "print(\"training sets (x,y)\")\n",
        "print(train_x.shape, train_y.shape)\n",
        "print(\"val sets (x,y)\")\n",
        "print(val_x.shape, val_y.shape)      \n",
        "print(\"test sets (x,y)\")\n",
        "print(test_x.shape, test_y.shape)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "n_train:249900\n",
            "n_val:149940\n",
            "training sets (x,y)\n",
            "(249900, 100, 3) (249900, 100, 3)\n",
            "val sets (x,y)\n",
            "(149940, 100, 3) (149940, 100, 3)\n",
            "test sets (x,y)\n",
            "(99960, 100, 3) (99960, 100, 3)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "bW4tATRxlYuh",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "train_xp = train_x[:10000,:,:]\n",
        "train_yp = train_y[:10000,:]\n",
        "val_xp = val_x[:5000,:,:]\n",
        "val_yp = val_y[:5000,:]\n",
        "test_xp = test_x[:5000,:,:]\n",
        "test_yp = test_y[:5000,:]"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "VOC1eToKdscJ",
        "colab_type": "code",
        "outputId": "335d95ac-41a6-44a2-f682-7233cada699b",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 68
        }
      },
      "cell_type": "code",
      "source": [
        "print(train_xp.shape,train_yp.shape)\n",
        "print(val_xp.shape,val_yp.shape)\n",
        "print(test_xp.shape,test_yp.shape)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(10000, 100, 3) (10000, 100, 3)\n",
            "(5000, 100, 3) (5000, 100, 3)\n",
            "(5000, 100, 3) (5000, 100, 3)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "_KGAZ9SIm6_H",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## 8.4. Design, compile and train the LSTM Network"
      ]
    },
    {
      "metadata": {
        "id": "abB49OORg2YT",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "from matplotlib import pyplot\n",
        "from keras.models import Sequential\n",
        "from keras.layers import Dense, Dropout, Embedding, LSTM, Bidirectional\n",
        "from tensorflow import keras\n",
        "\n",
        "# Design the LSTM Network\n",
        "my_model_NN = keras.Sequential()\n",
        "my_model_NN.add(keras.layers.Dropout(0.5))\n",
        "my_model_NN.add(keras.layers.LSTM(100, activation='relu', input_shape=(train_xp.shape[1], train_xp.shape[2]),return_sequences=True))\n",
        "my_model_NN.add(keras.layers.Dropout(0.5))\n",
        "my_model_NN.add(keras.layers.Dense(3))\n",
        "\n"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "ogEXXLqnnCTj",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "### Fit the LSTM Model"
      ]
    },
    {
      "metadata": {
        "id": "5TkGfVVSVakd",
        "colab_type": "code",
        "outputId": "439fd8b7-4f9e-4c9a-9729-0c295aaa1b6c",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 379
        }
      },
      "cell_type": "code",
      "source": [
        "\n",
        "# fit network\n",
        "history = my_model_NN.fit(train_xp, train_yp, epochs=10, batch_size=100, validation_data=(val_xp, val_yp), verbose=2, shuffle=False)\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Train on 10000 samples, validate on 5000 samples\n",
            "Epoch 1/10\n",
            " - 36s - loss: 0.0842 - val_loss: 0.0290\n",
            "Epoch 2/10\n",
            " - 35s - loss: 0.0289 - val_loss: 0.0255\n",
            "Epoch 3/10\n",
            " - 35s - loss: 0.0256 - val_loss: 0.0235\n",
            "Epoch 4/10\n",
            " - 35s - loss: 0.0238 - val_loss: 0.0217\n",
            "Epoch 5/10\n",
            " - 35s - loss: 0.0208 - val_loss: 0.0206\n",
            "Epoch 6/10\n",
            " - 35s - loss: 0.0189 - val_loss: 0.0199\n",
            "Epoch 7/10\n",
            " - 35s - loss: 0.0175 - val_loss: 0.0180\n",
            "Epoch 8/10\n",
            " - 35s - loss: 0.0165 - val_loss: 0.0184\n",
            "Epoch 9/10\n",
            " - 35s - loss: 0.0157 - val_loss: 0.0166\n",
            "Epoch 10/10\n",
            " - 36s - loss: 0.0158 - val_loss: 0.0146\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "dsIFprSTnGV8",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "### Compile the LSTM Model"
      ]
    },
    {
      "metadata": {
        "id": "QgrmgnCYbAow",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "my_model_NN.compile(loss='mae', optimizer='adam')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "Xh4r5rA3b8z5",
        "colab_type": "code",
        "outputId": "b68d5d0d-a09e-44fc-bd3a-7d0c0a0e50db",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 606
        }
      },
      "cell_type": "code",
      "source": [
        "my_model_NN.summary()\n",
        "\n",
        "\n",
        "# plot history\n",
        "pyplot.plot(history.history['loss'], label='train')\n",
        "pyplot.plot(history.history['val_loss'], label='val')\n",
        "#pyplot.ylim(0,0.08)\n",
        "pyplot.legend()\n",
        "pyplot.show()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "dropout_4 (Dropout)          multiple                  0         \n",
            "_________________________________________________________________\n",
            "lstm_2 (LSTM)                multiple                  41600     \n",
            "_________________________________________________________________\n",
            "dropout_5 (Dropout)          multiple                  0         \n",
            "_________________________________________________________________\n",
            "dense_2 (Dense)              multiple                  303       \n",
            "=================================================================\n",
            "Total params: 41,903\n",
            "Trainable params: 41,903\n",
            "Non-trainable params: 0\n",
            "_________________________________________________________________\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fd0ab333eb8>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "ABYL1rxeJojG",
        "colab_type": "code",
        "outputId": "bed63e89-89a5-49bf-9e82-1316b1b51ae4",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "cell_type": "code",
      "source": [
        "test_xp[0:1,:,:].shape"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(1, 100, 3)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 28
        }
      ]
    },
    {
      "metadata": {
        "id": "vVC9OMiyT-fK",
        "colab_type": "code",
        "outputId": "52828d84-d531-494f-cc20-1f6121786c41",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "cell_type": "code",
      "source": [
        "test_xp[0:1,:,:].shape"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(1, 100, 3)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 81
        }
      ]
    },
    {
      "metadata": {
        "id": "DXBxUrIYnPqd",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "### Predictions with the LSTM Model"
      ]
    },
    {
      "metadata": {
        "id": "HzTKAvW9UGoz",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "pred_yp = my_model_NN.predict(test_xp[0:1,:,:])"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "GorsWQ53nUKN",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "### Visualize results of the LSTM"
      ]
    },
    {
      "metadata": {
        "id": "pcsAS19YUhaw",
        "colab_type": "code",
        "outputId": "57dc77ce-b057-421b-e09b-21aef661efd0",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1019
        }
      },
      "cell_type": "code",
      "source": [
        "# plot history\n",
        "x_plot = np.append(test_yp[0][:,0], pred_yp[0][:,0])\n",
        "pyplot.plot(x_plot, label='X_pred', color='red', linestyle='dashed', linewidth=1.3)\n",
        "test_yp_x = np.append(test_yp[0][:,0], test_yp[100][:,0])\n",
        "pyplot.plot(test_yp_x, label='X_real')\n",
        "pyplot.ylim(0.2,0.6)\n",
        "pyplot.legend()\n",
        "pyplot.show()\n",
        "\n",
        "y_plot = np.append(test_yp[0][:,1], pred_yp[0][:,1])\n",
        "pyplot.plot(y_plot, label='Y_pred', color='red', linestyle='dashed', linewidth=1.3)\n",
        "test_yp_y = np.append(test_yp[0][:,1], test_yp[100][:,1])\n",
        "pyplot.plot(test_yp_y, label='Y_real')\n",
        "pyplot.ylim(0.0,1.0)\n",
        "pyplot.legend()\n",
        "pyplot.show()\n",
        "\n",
        "z_plot = np.append(test_yp[0][:,2], pred_yp[0][:,2])\n",
        "pyplot.plot(z_plot, label='Z_pred', color='red', linestyle='dashed', linewidth=1.3)\n",
        "test_yp_z = np.append(test_yp[0][:,2], test_yp[100][:,2])\n",
        "pyplot.plot(test_yp_z, label='Z_real')\n",
        "pyplot.ylim(0.0,1.0)\n",
        "pyplot.legend()\n",
        "pyplot.show()\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAecAAAFOCAYAAAC8HtVyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3Xd81PX9wPHX91bG3WUvCAkjzAQQ\ngiDIUJYC1m0VVLDWUatUraXVpvUH1UqdbbVqHbVWrW2xGi0OREVFZAXZJKwEsiAkl71vfn9/XHIQ\nyCa53OH7+Xj4kMt9v9/7fHLf3Ps+789SVFVVEUIIIYTP0PR1AYQQQgjRkgRnIYQQwsdIcBZCCCF8\njARnIYQQwsdIcBZCCCF8jARnIYQQwsfoOnPQypUr2b17N4qikJaWxtixYz3PFRUV8cADD2C320lO\nTuaRRx7p8BwhhBBCtK3DlnNGRgZ5eXmsWrWKxx57jMcee6zF848//jg//vGPeffdd9FqtRw/frzD\nc4QQQgjRtg6D8+bNm5kzZw4ASUlJVFVVUVtbC4DL5WL79u3MmjULgOXLl9O/f/92zxFCCCFE+zoM\nzqWlpYSHh3seR0REYLFYACgvL8doNPKHP/yBRYsW8cwzz3R4jhBCCCHa16k+51OdutqnqqoUFxez\nZMkS4uPjufPOO/n666/bPactDocTnU7b1eIIIYQQ55wOg3NMTAylpaWexyUlJURHRwMQHh5O//79\nSUxMBGDKlCkcPny43XPaUlFR360KtCU62ozFUtOj1+wrUhffJHXxTVIX3yR1af06bekwrT116lTW\nrl0LQGZmJjExMZhMJgB0Oh0JCQnk5uZ6nh88eHC75wghhBCifR22nFNTU0lJSWHhwoUoisLy5ctJ\nT0/HbDYzd+5c0tLSeOihh1BVleHDhzNr1iw0Gs0Z5wghhBCicxRf2TKyp9MdkkLxTVIX3yR18U1S\nF9/kE2ltIYQQQniXBGchhBDCx0hwFkIIIXyMBGchhBDCx0hwFkIIcc7Ztm0rS5fe6XlssZSwaNE1\n1NX13lLS7723itdee7lHriXBWQghxDln4sQLiI2NY82ajwB4/vk/ceedd2M0+seaG11evlMIIYTw\nBz/72QMsXXoHRqOJ+vp6Zs6c0+pxRUXHefjhh0hISKSgIJ+RI5NZtuwhHntsBTqdnurqSh555HGe\nfPIxjh8/hqKo3HLLHUyYMJHvvsvgueeeISIiksjIKPr3j++RsktwFkII0fvKytDm5LX4kTO2H5hM\nKMXFaGqrWz4XnwCBgWiOH0NpaLm8s3PgYNB1HL7CwsJYuPAmli//NW+//W67x2ZnH+Kxx54kJiaW\nO+64hcOHDwEQEhLCgw/+hk8//ZjIyCh+/ev/Q6u1c/PNi3njjf/w8svP8/DDjzJs2HCWLbtXgrMQ\nQgg/8pe/EPG737X4UdUb/8Y2/zKMjz9K0Ntvtniu4vP1OM4bj/nnSzF8ta7Fc6X7slFjYjr1stnZ\nh4mL68eBA/vbDZwJCYnExsYBkJycQn5+nuffAPv27WH37p3s2bMLg0GH1WrFbrdTVFTEsGHDARg3\nLhWr1dqpcnVEgrMQQoje97OfUT7vihY/csb2A6DuoYdpWHpfy+fiEwCo+dPzZ7Sc1YiITr1kVtY+\njh49wl/+8jL33383kydfSHBwcKvHttxxERRFAUCn03v+v2TJj5k7d16LFcI0Gk2r1zhbMiBMCCFE\n74uMxJk0rMV/NG2IpMbGnvlcYCAArv7xZz7XiZS2w+HgmWee4L77lhEVFc2CBVe0O5L62LFCSktL\ncblcZGXtY9CgwS2eT04ezbffrgegrKyMl19+AYCoqGjy83NRVZWdO7d361fTGmk5CyGEOOf85z//\nZNy4VIYMSQLg+usXcdttN5OTk01S0tAzjk9MHMgrr7zA0aNHGDNmrOe8ZrNmzWHHjm3cddeP0Whg\n8eLbALjzzrv57W8fJC6uHzExsT1Wftn4wg9IXXyT1MU3SV18ky/XpajoOL/97YO89tpbnTreGxtf\nSMtZCCHE98L//pfO559/esbP77praR+Upn0SnIUQQnwvXHnlNVx55TWtPtfZVrO3yIAwIYQQwsdI\ncBZCCCF8jARnIYQQwsdIcBZCCCF8jARnIYQQwsdIcBZCCHHO8dZ+zkuX3smRI9k9ek2Q4CyEEOIc\nJPs5CyGEEO1458tsdhy24HT23IKUE0fGcP2sM5fhPFVX9nN+5JGHCQoK5tprr8dkMvHyyy+g0+mI\niYnlwQd/i6IoPPbYCiyWEux2K0uW3M7UqdN7rD6nk+AshBDinNSV/ZwPHz7Ie+99RGhoGLfeeiPP\nPvtXQkJCefHFZ/nqqy+YOPECJk2azPz5P6CxsZK7714qwVkIIYT/un7WUO65YXyfrK3d2f2c4+MH\nEBoaRnl5GYWFBaSl/RKAxsZGQkPDMJtD2L8/k9Wr0zEY9FRXV/VquSU4CyGEOCd1ZT/nU/dtjoqK\n5vnnX2nx/Jo1H1FdXc0LL/wNvd7J1Ve3vgxoT5EBYUIIIc45Xd3PuVlISAgAR48eAeDdd/9DdvZh\nKisr6devPxqNhs8//xy73d6r5ZfgLIQQ4pzT2n7O3323lZycjqc9PfTQ/7Fy5e+4++7b2bNnN4mJ\nA7n44lls2rSB++77KUFBQcTExPD666/2WvllP2c/IHXxTVIX3yR18U1Sl9av05ZO9TmvXLmS3bt3\noygKaWlpjB071vPcrFmziIuLQ6vVAvD000+Tm5vLfffdx7BhwwAYPnw4Dz/88NnUQQghhDgr7e3n\nPHr02FbO6DsdBueMjAzy8vJYtWoVOTk5pKWlsWrVqhbHvPrqqxiNRs/j3NxcJk2axHPPPdfzJRZC\nCCG6ob39nH1Nh33OmzdvZs4c98TtpKQkqqqqqK3t2eXPhBBCCHFShy3n0tJSUlJSPI8jIiKwWCyY\nTCeXQFu+fDnHjh1jwoQJ/OIXvwAgOzubu+66i6qqKpYuXcrUqVPbfZ3w8GB0Om1369Gq9vL5/kbq\n4pukLr5J6uKbpC6d1+V5zqePH7v33nuZPn06oaGh3HPPPaxdu5bx48ezdOlS5s+fT0FBAUuWLOGz\nzz7DYDC0ed2Kivqul74dMvjAN0ldfJPUxTdJXXyTNwaEdZjWjomJobS01PO4pKSE6Ohoz+OrrrqK\nyMhIdDodM2bM4NChQ8TGxrJgwQIURSExMZGoqCiKi4vPshpCCCHE90OHwXnq1KmsXbsWgMzMTGJi\nYjwp7ZqaGm677TZsNhsA27ZtY9iwYaxevZrXXnsNAIvFQllZGbGxsb1VByGEEOKc0mFaOzU1lZSU\nFBYuXIiiKCxfvpz09HTMZjNz585lxowZ3HDDDQQEBJCcnMy8efOoq6tj2bJlrFu3DrvdzooVK9pN\naQshhBDiJFmExA9IXXyT1MU3SV18k9Sl9eu0RZbvFEIIIXyMBGchhBDCx0hwFkIIIXyMBGchhBDC\nx0hwFkIIIXyMBGchhBDCx0hwFkIIIXyMBGchhBDCx0hwFkIIIXyMBGchhBDCx3R5y0jhexptDta8\nt5nMnFLCAyChXyiX3nARAfqe3R9bCCGEd0hw9nP7jpTx90/2U1lrR6M1c8SpYXsh7H/mI352/wKC\nA/V9XUQhhBBdJGltP7ZrywGe+88OahvsXDF1EC8sm8mz905jsrGRg5h58p/fUVVr7etiCiGE6CIJ\nzn5qT8ZBXviyAJ3LwS/mD+Gq6UMI0GsxBxu4/Z75zBgdS35pA7//+xYK80v7urhCCCG6QIKzH7La\nnby59hBa1cXPr0lhxOiBLZ7XaBRuuSyZq6cPpqzeyR/e3EZ+bkkflVYIIURXSXD2Q+ve30S53si8\ngXqGJSe2eoyiKFw+dTA/uTCGBl0Ar/1zE3aH08slFUII0R0SnP1Mdb2NjwqcmDVOLv3hjA6Pv2DG\naOZGOSjQhfD+m196oYRCCCHOlgRnP/PJplwa7S4unzWSoIDODba/5pbZ9HfU8GmJlkMFlb1cQiGE\nEGdLgrMfcThdbNqSTRh2Lh4f3+nzAvRabr15KgCrvsxGVdXeKqIQQogeIMHZj2TuyqVWF8jkCBWd\ntmtvXdKgKCYOj+JoUTXbNx/opRJ+P6iqysGsAjZmHKHB6ujr4gghzkGyCIkfyfhmL2Bm4qXnd+v8\na6YNYseBYtK/PMS4C0Z0OcALyN6fz38/2MFhJQQAvU7DuKBGzh83kDEThxFokD8pIcTZk09nP9Fg\ndbC9PpB+jhoGJUZ26xqxMSHMjnZxQmfmo/9808MlPPeVltXyx/cyOayEMNFQww0zk4gKCWBbjYG/\nbigi7clPOZpd1NfFFEKcAyQ4+4md+09g0+qZnBSGoijdvs7lN88k1l7D6gIXOzbt78ESnttcqsob\nr62jURfAbZMi+ekDV3LzD0bz+zsm88gtqVzWz0W1JpCn/rOLvduz+7q4Qgg/J8HZT2w9VAbApEsn\nntV1jEEG7rllKgFOO69uLOJ4aV1PFO+ct37XcTJdZsYH1HPhzLGenyuKwoB+YVx7yxzumTkAl6Lh\nz5/n8/43R3C6XG1er7yqgYMHj8vgPCFEqyQ4+4HaBjtZR0oZGBlIbETwWV9vQGIUt14zDqsT/v5x\nFi6XBIj2lJbX8c5X2QQH6Lj59rltZi7GTxnJL390AREhgXy4KZcnn/qIyuoGwD2I7Jillo8/yOD3\nj73Psr9u5on3D7Bh7Q5vVqVdAe+/S/Afn+zrYgghkAFhfiHj6704UZhktvfYNSeNimXn3kK2Hqli\n3eotzL1qSo9d+1ziUlXe+NsXWF1mbr9sFOHmgHaPT4oP43c/nshbb65na7mJlc9+zpUzkvhmfymH\nK90rtGkVE2OUKnLsAazabmX0hY1EhAR6ozrtCvnJjwGov/teCOz78vi0+np0OYfR5B5Fm5uLtjCf\n2sefAUUh5MbrUJxOXJFROM4bh+3C6TjHjO34mkKcQoKzH9j07X7AxLhZqT163RsvG83+P37Oe5l2\nRk+upF9cWI9e/1yw4dPtZLrMpBpqmTI6rlPnBAfqufOO2SS+t5H/Zpt4bXMxAGOTIpmcHMvYpEiC\nA/V8u243f99Wxj8+PcDPf3jeWY0lOGunpOAN67/Cdun8Tp/aaCmjJr+IfgYn2O04RowCoxHdrh1o\nSi1gs4PDjmK3Y/3BlRAQQED6f9GUlYLNjlJdiVJXR93vnwDA9Otl7nOaixYdRf1DD0NdHablv2nx\n2s6hQ2m4ayma48cI/uNT7h+GmQjWB+FInYBt7jyUsjJ0B/fjCglFDQtDDQ1FNZmho9+3qqKUlaE9\nVoD24AF0Bw/QcOdPccXGEXb9VegztqDq9TgTEnENGgz19WA04pg0Gc3xY2iKiwl+7k8Evv43Krbs\nBLudgA8/wDr/BxAU1Onfr/h+kuDs4xptDnbWBzDAVU2/GHOPXttsDGDxrCG8sOEEf351PQ/9bC7h\nYWefNj9XFB0vZ9V2C0ZUbvpp2+ns1iiKwvzrphG3eT/7duRw0eWTSUyManHM1Flj2Vq6m31Hytme\ncZjzLxje01XoPI2G0gNH0W/ehH3qtHYPVUpLQVU52Kjn/dc/57AuDJdGy6Pv/h/j8vdQsW4DjjHn\nYXx0BYYNXwOgGgyg02O7eDZqQACBb76OtiAfVa9HDQ3FFXvyi4/mxAmwnbrVqbvbRVFdaIqOtSiL\nGh7u/ofdjuZ4ofvfhQ4MljIUux3b3HnoM7YQesuiFufVPfBL6h96mID0/xL01+dRQ0JRjcEojY3U\nL70f+4yLMf72QYJffcn9OsHBOIaPoPGaH0JsHDVP/gnVaMQ1IAG02hbXrr9/2SkFVN2/L0C3bw/m\ne3+KKegXNN64mIaf3I2rf+cXExLfL4raiREpK1euZPfu3SiKQlpaGmPHnkzRzJo1i7i4OLRNN+jT\nTz9NbGxsu+e0xmKpOcuqtBQdbe7xa/aF7zbt58VvirgqXuWKxbN75TU+WrWB9KN24jWNPPizuZiC\n9L3yOuA/74vN7mTlUx+TrzFxz/Q4JkxNPuOYnqhLcXkdv31pEzGueh5Juxytpm+GgURHmbCU1rZ7\njFJdRfBf/kzQqy9x4FePsNw6nEark8FmhSM1KoMjA3j48iSIjAS9Hmw20GjcwcuLWYEz3heXC6W2\nBqWyEqWqCk11Fc5+/XENSUK34zsMn32KUl2FUl8PAQE0Xv1DHJOnoD18CKW8HFd8vDuI9sB7o5SX\nEfjOvwl69SU0Rcep/vs/sc1b0Pm6+DGpS+vXaUuHLeeMjAzy8vJYtWoVOTk5pKWlsWrVqhbHvPrq\nqxiNxi6dIzon44Q7vdfTKe1TXXb9NOr+/S1r8+FP7+xi2cLxnV63+1z173WHydeYmN1f02pg7imx\nEUZmRjj4otLMpi92Mf2S3nuf23X33Zga7NQ++gfCrpxHXdpy7BfN9Dyt37gB89KfoNhsHEt7hCfs\nyTRYrdx5eTKTU+J48YN9fHeghB3VWlLjmr7cGQx9U5fTaTTulnFIKACn7s3mSD0fR2rri/o4h/V8\nJkONiKThrqU03H4XAR/9D/sE9+yL4CdXYps1B8f5k3r8NYV/6vCr4ObNm5kzZw4ASUlJVFVVUVvb\n/jfs7pwjzlTbYGdXThnx0SYS+vdef7CiKPxw0TSmjonjaFENLzy35nu9veThg8dYv+s4CTEmrr9x\neq+/3oIbL8bgtPO/jGPY7H30e//2W1yRke6BYBoNgf/+JzialiZ1ODD98n7sky+kfNN3vB0/jbIa\nK1dNH8zkFHc6+urpg1EUeH/DERn93xk6HdarrkWNjgabDd2uHYQvmIPpvrtRLJa+Lh1KZQXarEy0\nhw6ibRr4ptRUu590OkGmAPa6DoNzaWkp4c39OkBERASW026e5cuXs2jRIp5++mlUVe3UOaJjW9Z+\nh8OpMm9MVK8PFtIoCj+aP5LzA+vJchp54skPKS6u6tXX9EUuVWXVe9sAWDxnKHqdtoMzzl5YSBCX\nJugo1xlZ/+n2Xn+90yk11ZCZieN8dyuu4c67CfjwAyIuGIdh7RrQ6aj85Atq/vo3bMYQth+yEBES\nwA8uHOS5Rr9IIxemxHHMUsfOw/K33iUGA9Vv/5eqt1Zh2PgtEVNSMXz4v15/WaWinIB3V2H8vzRC\nr72C8MnjCX78UXeRPv2EiIunEDFtIhFTJhA56TwC334TgKDn/0xUQjQRY0cQftEUQn94JbqMrQDo\ntm3FsHYNuj27UEpKWgw0FF3T5dzl6V3U9957L9OnTyc0NJR77rmHtWvXdnhOa8LDg9H18Adhe/l8\nX6eqKt9kWdARyMyLRhBq8s7Ull+vuJ4XnvqAL8tC+N3fNvOTWQOZffnEHv1y4MvvyxcfbeOIJoSL\nQhqZMmFgh8f3VF0W/mQ+XzzyKWsL7FwXFoxB3/tfCjz2bgNVJfSSmRBphjtvhflz0D71FKG7MuDm\n66GpnhmZJ2iwOrh08kBiY0JaXObG+aPYuO8EG/aeYN60JO+VvxW+cI/tOFDCsMQwzMGdTO/ffD1c\ndwU88QShk1M9v/Meq4vFAunpUFkJDz4IxXnwi3th3Dj3f5cvQDd1KsZoM9x6M/zgUncr2eEApxNT\nbCymKDMsuRHGJqMtLYXSUjhxAkNCjLu8q9+FV1452bLW62HnTkhJgYcfJrqgAMLCIDwc+veHm2/2\n3ZHrqgqNje7yNTZCVhaknux26u17rMPgHBMTQ2nTaEOAkpISoqOjPY+vuuoqz79nzJjBoUOHOjyn\nNRUV9V0qeEf8ffDB4UPHKdSYuDCwllBToFfrcvMdlzD8m328+U0+z64vYlPxFm6ZN4LgwLMfKObL\n70uJpZp/fJaNQaPj8kUXdVjOnq7LxecnsmZrPh98tIuZ07w3cttwtJDQ6dOxuAzQXJ/AMHj4Mfe/\nT6nj51tzARgzKPyMugdpFUYNDGdPdim7soqIjzZ5o/hn8IV77HBhJX/45w6G9A/hoZtSu7bJzN0P\nAKDZtZ/IFb+m9Ik/o0Z0bz19AP3mjQS98CyGL79ADQrGesVV1FpqIDoBjhw/Y7S55/02tZxdgNr0\nXHg/mNnvzBey1MCjT8H/rURTUuyeTnaiCFtwBFhqiNbpsJaUoWQfQVNZiWIpofyya6HGjvnuO3CM\nOQ/b7Lk4h4/w6gBCD5uNwLffRL99G9qDB9DmZOMcOYrKT75AeySbsEtnU3Y4H/DOgLAO75ipU6d6\nWsOZmZnExMRgMrn/6Gpqarjtttuw2WwAbNu2jWHDhrV7jjes3niU3zyxhkab/27n982a7wCYPm9C\nn7z+pBmjWfHTGQyND2XbgRKefPFLquusHZ/op0qrGnjqzQyq9MFcPzaciHBjxyf1sEsmJWJwOVjz\n9UEczo7TgdV1tk4d1xHbFVfDNx1vhGKzO9l5uJSo0EAGxbX+oTIrdQAAX+441urz3xcZWSUAHDle\nzXvrc7p3EbsdMjMJu/xSNAX53S5L8JMrUex2ql9+nbLMbGr/9Lz7ieaR9D1Nr8cVPwDHxAuwXX4V\nNH/2L19O9Rv/our9j6n4aiPl+w67W9aNjagGA0EvPkfE9ElETBxL8J+fPvtyqKq71W+zuVu+TSl2\npaYabeY+DB+txvj7FYTceJ37Ob2eoFdeRKkoxzZzNrV/eIraR/8AgDNxEOWbvNvl1GHLOTU1lZSU\nFBYuXIiiKCxfvpz09HTMZjNz585lxowZ3HDDDQQEBJCcnMy8efNQFOWMc7xJLbGwp8TGWy+v5fal\nC/p2cYduKKtqZEuDkXi1juEj+vdZOaIiTTx403j+/Z/NfJkPz/xpDQ/cN49Q87m1elRRUQV/+mA/\nZXYN16ZGM+uSMX1SjlCjgYujVT4rM7Lx811cNK/1kdvZhVV89O5G9jS6dym7Yf5oxk7oZhq5oQHd\noQMwq/25zQB7j5RjtTmZlRrf5t/UuGGRRIQEsGnfCa69KIngwO/fqH+XS+W7gyWYgvQYg/SszShg\n1MAIxiZ1rfXrGjQYNm5EnTefsAVzqPrXu51baczlIui1l1GDgmm8+Raq3v4vBPvw+gVBQdQ++yK4\nXOgy92L4fC1q0+wf/VfrMK34Dc4hQ3EOGowrKhrbzNk4k1PQ7t2DftcOsNnQWIrRFBfTeOvtOMaO\nw/TgAwT+4zWUU7pUK774BsfYcYT8eDGG9V+harU4RqXgOH8iSn0dqslMxeY2ltPV6dyD97yoU/Oc\nvaEn01AOp4s/PvMRB1wmbh5jZtZlZ7dZhLf96/NDfLG9kNsuG8XUMf36PE2nqiqr/rGOz4o1xNpr\nuPe26fTrH9Gta/VmXRxOF4cOHaes1kGlHU7sy6bYUsMAs47Rk0aQPG5Ii2Chqir79+bx0v8yqdUH\ncdW0wVwxbXCnX6836lJZ3UDac+sJwMHKX85rMaXNZney6rMDfLXXveLYIFc1+RhxabRMDm5g8U8u\n7fIUOP2XnxO66DqUkhIsavtLk/75v7vZk1PG8h9NZGAbLWeAjzfn8t76I1w5bTBXduH32VP6+u9l\nf14FT/17JxeP689F4+L53T+2MWZIJD+//rwuXys62owl9wQhd9wCgUFU//2tdo/XFORjvu9u9Blb\nqFv+KA13/LS71ehx3XlftIcPEfD+u2iP5KDNz0MpK6XhrqU03no7Qa/+leA/P4Oq0+GKicUVG0v9\nvb/AMekCdNu3oSkuBoMeVaMFjQbHhPNRzSFo92ehBga6F5DRd6+rzifmOfsjnVbDgw9dyX2/+5B/\n73bSLyGXUWMHdft6tfU2NqzdwUXzUgkO6t25m9V1Vr75Lo9Io4ELkmN79bU6S1EUbvjRbIL/8w0f\n5Jl57PWtLLpiHJNGxaLXnd3CDHWNdtZty6eoopGUxFDGDo8hpLMDaJrUN9rZ8HEGX+wvp0x3ajpa\ng0Zj5ki9hm++LkT7ZR5D44yERYWi5uaSU+2iTGdEp9Vz+8QILuyDQHK6sJAgFgwNJj3Xwdr/buCq\nm2eiqip7dhzhvTV7KdSFEB8ZzOJ5IxmeEEZhYRlvvbWBLfUhHH1jG9PjA1Cqqzl2ooqcOrCjwRAe\nRuKAcKamxJIyJAqN5mSr1/DVOhznjUMfFdWib/l0R45XsyenjOEJYSTGtt9FNSt1AJ9/V8iarXnM\nOK9/h+uRn2u2HXCntCeOjGFgnJm4iGAOFVbicLq61vfczGik+s3/uFOzgGHdZ9guuPBkurhJwKp/\nYUr7Fc6Bg6j4bD3O5JSzrktfcw4bTv2v0lp9ruGOn7b55cMxoe0GmXNU761b0JPOyeAM7pTs3deM\n5en/HeCFtTmk9Y+mf1TX+xGdLhcvPb+GLJeZmpBcrp/duwN1vkzfiE3RMn9IUPf+kHuJoihcsegi\nor/czevbynjt4/28szaLmXEKc66ZhqmdgKqqKnWNDsqrG8kprCBv+wHKS6ooq25kb0MA9Tr3h/fW\nrGL49BCxjhqSjDBoUBQDx40gcUA4AXotDVb3NYxBevQ6DblFNezZeZQN+0to1AYQqOiZG9ZIwtih\nhMRG0C/SSGRIIHmF5ezbsIe9eXUcKtGiljQCQZho5AJDNbPnT2DoqAQv/SY7NveaqXz17JesKdJh\nefVLCkuqKdCGgC6EuVEOrr1lomc094ABkfzyV1eQvj6HTzMKeLe8oekqZkw0YlLt1NlcZOwvIWN/\nCRGOOqYlBDP9islEhhsxfLUO62WX01H74YNvjwDN85nb7yYKCtBx1fTBvPnpQd7fcIQfLxh1lr8R\n/+F0udh+sIQQo4ERie7ppKMGhvPVzmPknqhhaHxo9y6s07mDcUMDpmX3ozQ20HjdQuwTJ6FGRGKf\nNgMUhYaf3O1ePrSHF4Cx2Z0oCl6ZWijcztngDDA8JZFbHVpeXXOQP63ayf1XjiJ+QNf6fd5940uy\nXO7Uw4a9J7hyRhIBvTTNZd/2bD4pcBDmsjHt0ot65TXO1pRZ55E0vp6vdx1n45ZsVhca+OyP6xip\nbyRAr6AfMYIAnUJd5gEK6qFCCaBRo8elnP5FwwAYCKOeK0YEkjx1LJkb95J16ARHlEA2WQPYdNAK\nB/egURRCVSsVtP6BE4GTK4camPaD6RhbGVE+ODGSwTfN5HKgvtGBtWmhj1CjoUUr0lcEGLRcN38M\nr36UxeYy0GhMTA6sZcEPpzF/cPJEAAAgAElEQVQg/szuBJ1Ww/WzhjFldD8qyqpRHA6i+0cSGxGM\noiioqsqRY1VsXr2RLeU6VhcpfPnC1zwwM57oQwepffrZdsuTXVjFviPljBoY7gk4HZk+th/rvitk\n454iLpmYwIA+GrntbYcLqqiptzMzNd5zbzUH5/15Fd0Pzs2Cgqj48lsC336LwH+9SdDfXqLx5h9h\nnzYD6/WLOj6/GzbvO8E/Pj2A3eEiOEDHzNR4rp4+xCf/ds4l52SfM7TsE2juAwt0WLlj9mDGTxnZ\n7rkOp4u8wgrWpW9ki9VEvKOG5LGD+DyrjFvHhzH90p5fYvFQVgF/fD8TUHjgqlEMT0lstS6+xGp3\nsmHNNtbsKaVCd+aAk2CnlWi1kQBFxRSkJ3z0CBLjzATVVhKeEEdkeDAhRgOa01piqqpSUlFP7r5c\njlj1HD1RQ3n+CfprrUSbDNRbHVgdKv0njmZoYjijB0f0SZaht9+XE+X16LUaQoyGs+4+aGa1O/n2\n8538e1clesXFr5QDDP7FT4nuH9FqXeob7fzhnzs4VlrHQzelMjyh8yvVfXeghBc/2MdlUwZy7UXe\nm/fcl38v736dwydb8rj/h2MZm+SeilRTb+O+575l1MBwfrlofJeu125dVNU9D1nXO20sVVX5cFMu\nH2w4SlCAjsH9zByz1FFVZ2P04Ah+cmVKq1+G2+Krn2PdIX3OPeSyKYOIddTx2voC/rL+OJfsL+Da\nJbM8KRqXS+Xo0RI2rNnGrkqFal3zpHgTA53V3HX7xRiCA/ly3wa++C6faZeM7/IIcKvNSYGlluOH\nC6nIO051jZUAvZaIaDNZdiO7jlag1ej42ZzEFoHZlwXotcy5YjKzLlex2Z1YbU6sdidWu/sbdkRI\nwBm/p87c1IqiEBthJHZGChf0ZgV8XFxEz4+wDdBrmb3gfMKjsnlpfQGPK2P5+fFaolsZ4Gd3OHnu\nvb0cK61j9oQBXQrMAKOHRKDTKuzJKfNqcO5L+46WodMqjEg4mWEwBxsYEG0i+1gVdoez51LDitKj\ngbm63sanW/I5b2gkSfGhvLn2IN/uKSIyJJD7rz+P+Cgj9Y12Xl6dxd4jZaz4ewZ3XJ7S5fuiLaqq\nUlBSi6WykajQQOIiggkwfH/T6N+L4Axw/vQUYgfG8Mqbm/isxMy2P3+FKSIEe3klpTZwaHRAMJHU\nMbK/ifBwExcmx5A8JNITYC4IbmBTYwhffbaLmZeM61SAdrlUvvl0O//NrKbBs2yyFmj64K2wATaS\n+odw1YwhpAzq3ijovqRRFAINOgIN35vbye+lThrK0shw/vLeHp59dw8REUZizCe7DRxOFy/9L5ND\nBZWcPyKaRbOHdfk1Ag06RiaGs+9oOeXVjUSEnFtT8E5XVWcjv7iWUQPDzwgqowaGU2ipJedYNSMH\ndq5rwJscThcvvr+PQwWVfJqRT0RIAOXVVgbGmbn/urGEmtzjQoID9dx33Vg+3JTL6o1HeeJfO7hh\n5lAumXR2DYpN+4p4/5ujlFU3en4WaNByy7yRPjMw1tu0K1asWNHXhQCor7f16PWMxoAzrhkaamTq\nlGHYDmWTZ9VRZ3PhcrmId9aSYnRw/aWjWHTdRKaNG8CEEdHENPXZNYvuF8GW3YXsKLZz6MBxShuc\nFGzfT22jHV1wIEEBuhbHl5fX8uxza/iqGAIcVi6aNIiLRsdwaWo88y8czNSUWEaHwSUXDOTKi4cT\nE9b6Mnat1cVfSV18R2xEMAnRJrbuL2bddwWUV1uJDg9Coyi8sjqLXdmljBoYzj1Xj+52t0Fdo529\nR8qJiwhmUL+Qjk/oAX31vuw8bGHHIQszx8czbEDL1qTTqbJ1fzFh5gCSu/AFvDfqUlbVyMa9RcRH\nGz3v63/WHWbbgRJGD4kgwhxAQUkd5yVFcv8Pz8N42hayiqIwMjGc5EHuL17fHbQQajIwKO7k+1td\nb2NvThkb9xZxoryehBgjZnNgq3U5mF/BC+n7cKoq54+I4cLRccRFBJNfUsvWrGIqahoJNwcSajT4\nzJoVPfW+GI1tz2T4XvQ596Syijr+9a9v2VlzZl9LkquauTOGEz9yIGWFJfz9w0yq9cFMDqrnhltn\nExrSvTVkpa/GN50rdck8Ws47X2dTUNxy57jkQeH87NqxZzUAsqSygYde2sy4oVHce10nFtDoAX31\nvrz6YRabM0+w4taJJMa27EtssDpY9uImXC6V5bdO7HSXRU/VpdHmQKvRkJVbzt8+yqKu0cH5I2P4\n6ZUpfL3rOG+tPUj/KCO/WTyBQIMWS2UDUWFBZ4wHOV1RWR1/+OcO6hrszJ2YwMA4M1m55WzNKsbh\nPBlaIkICuOOqMYzo3/ILWmWtld+9vo2aeju/unF8ixR5UVkdL36wj2OWOgBiwoO4ee5wRg/p/lKm\nPcUbfc4SnLtBVVWOldZRU2ejvriMkiPHOFxQwW6nGfWUUclal5Mbzwvj4gXnn9U3vnMlCIDUxVdF\nRBj5cH02B/IrqK6zEx0WyPUzh/bIBhy/eXULZVWNPHffdK9s6OHN96WixsqL7+9lcP8QMrKKQVH4\n49KprQa1rVnFvLw6k4FxZn6zeEKnshE9UZc1W/L479cnlxDVaTVEhwVSVFbP+SOi2X7QgilYT9ri\nCcSGd32cQ96JGp76907qrSeXS46LCGbK6DiS+oew72g5X3xXiMPp4uoZQ/jBlIEoioLV5uTpVTvJ\nOVbNDbOGcmkrqXG7w8mu7DJ2HrKw7UAJTpfKReP6c+Oc4T02SLI7ZECYj1IUxT01JBoYFAEXDGM+\nUGypYeN3edRp9Gga6rhgRLRPzZ8Voi1arYapY/oxdUwrGxqcpfOSovg0I58D+ZVdXsLS12XllpNz\nvJqc4+69jqekxLXZ2rwgOZZ9R8vYuPcE//v2qFcGyRWV1fH+hiOYgvQMjDWh02q4avoQQowGfveP\nbXx30EJQgJYHrh/XrcAMMDDOzJM/nULuiRqOldYRGx7E6CGRnt9D8qAIpo3px7Pv7eH9b45QVFrH\n3IkJvP/NEXKOVTM5JZZLJrb+OanXaZk4MoaJI2OYd0Eif/toP+t3Haeq1sbdZ9Hd4g8kOPeg2Ggz\n18wf3dfFEMKnjBkSwacZ+WTllp9zwbm8aQDT7AkDqKixcumk9r+M3zR3OPvzKvhsWwGzUgf06upp\nLlXljTUHcDhVbpk3kgkjWq4Nfc/Vo0lff4SrZwxpdznWzggO1JM8KKLN/vT+UUae+tl0/u+lTWzJ\nKmZLlnsJ2rFJkfx4wahOZRYTY808fMsEnnt3D7uyS3l5dSa3X5Z8zo7oluAshOhVQweEote5+zvP\nNWXV7p3aLh4fT3wnViAMNOi4Yupg/rHmAB9tymXxpSN6pVw19TbSvznCocIqUodHnxGYAYYNCOPB\nm3p+zYa2RIYG8fCPzmdPThnf7DqOXqfhth8kd6n1q9dpWXrtWP78zm62H7RwuHAzV0wdxLQx/by7\nB7oXSHAWQvQqvU7L8IQwMo+WU1Vr9UzLORc0t5wjutACvnB0HJ9syeOb3ceZd0Ei0W3M0uiuPTll\nvPS/fTTanMSEBXHTXO/tDd4RrUbD+GHRjB/W/R2eAvRa7r/+PNZsyWNtRgH//OwQ6euPkDoiGqvN\nSU29jVEDw7kgJa7NGTCdYXc4UVX6LOhLcBZC9LrkQeFkHi0nK6+CKSlxfV2cHlNW3YgxUNel3cB0\nWg1XTRvMKx9m8UL6Xq6YNphxQ6M6vRym0+Vybz/cyoAoVVV5b30OdoeLRXOGcfG4+D4dONVbAvRa\nrpo+hJmpA1i3vYANu4v4dk+R5/kD+ZW8v+Eo44dFccXUwZ60/TFLLRv2FFFa1UhtvQ1jkJ6Y8CDO\nS4piRGKYZ7nbb/cW8a/PD+N0qQwbEIpGo3DMUsukUbEs7Mac/+6Q4CyE6HXJAyOAHLJyy8+Z4Kyq\nKuXVVmLCu946mzQqll3ZpWTsL+H59L2Yg/WMGhjO3IkJJPVvf/3tF9/fx+HCKn5xw7gz+orzimso\nKKkldXg0c88/9wejhhoNXDMjiSumDqbQUktIsIFAg5bthyys33WcnYdL2Xm4lFCjgTBTAHnFrY+w\nXptRwMBYM/HRRsqqGjlYUElQgI6Y8CD251UAEBkSQFSo9xbSkeAshOh1CbEmTEF6snIrUFXVZxaT\nOBv1VvcmKpHdWPlMo1G468rRXH5hLV9sL2R3U6DOyq3gibumtNkSP1RQyc7DpQA8s2oXS68Zg6JA\nkEHHgBgTG3a7W4/Tx/b8qHtfptNqWiyCMn1sf6aN6UdWXgVfbi8kv7iGvOIahieEcenEBJIGhGIK\n1FPbYKfQUsvXO4+x/ZDFE7yHDwjl9suTiQoNorbBjkZxD3rzap28+mpCiO8ljaIwamA42w6UcKK8\nnn6RXd++1deUVTX1N4d0vw89PtrELfNGoqoqH2w4yoebcvlyRyGXTRnU6vGrNx4FYHbqANbtKOTx\nt3d4nrt6xhC2ZBUTajIweoj/LQPc0xRFIWVQhGdJ5Nb20w4xGkg2ukeZV9fZsNmdBBi0mIL0ni+Q\npiDvBuVm515nhBDCJyUPcq8pnZVb0ccl6RnlTSO1u9NyPp2iKFw6KZHgAB1rMwpotJ1c0ENV3RvL\nHMyvICu3guRB4dx0yXDuujKFSaPc83/DzQG8/80RGqwOpo3ph1YjH+2n62hUeIjRQFRYEOZg31gm\nVFrOQgivaJ4Dm5VbzuwJA/q4NGeveZOGntrQIzhQx9yJCfzv26Os2+5uPVfVWvnD2zvILqzyHHfF\n1MGAu9960ij3phBzJgzgj+/sxlLZwLTvWUr7XCXBWQjhFdFhQUSHBXIgvxKny+X3rbvmaVQ90XJu\nNvf8AXy+rYD31h/BUtnA0RO1FBTXMLhfCMYgHYPjQlrdojEiJJDlP5pITb3tnN/96/tCgrMQwmtS\nBkXw9a7j5J6o6XBUsq872XLuuXnbwYF6HrhhHK9/sp9vmgZ3XTIxgRtmDe0w1arXaSQwn0MkOAsh\nvCa5KThn5Vb4fXAur7aiURTCenhRlSH9Q1h+60S+2nGM8LAgJgyN9Ik+UOFd/p1XEkL4lZEDw1GA\nrKOdW8qzqKyO+kZHxwf2gbLqRsLNAZ1ePKQrdFoNcycmMP/CwRKYv6ckOAshvMYUpCcxzkz2sSqs\nNme7x+46XMpv/7aVN9ce8FLpOs/hdFFZayWyB1PaQpxKgrMQwquSB4XjdKkcKqw847kDeRXkHKsi\n+1gVL63eh6q6g7TV3n4g97bKWiuqChFeXDFKfL9In7MQwqtGD4pgzZZ8dhyyMGbIyS0k84trePLf\nOz2PFdw7WmUXVpF1tJzxw7u/WUJP68k5zkK0RlrOQgivGpEYTrg5gIz9xS1axLtzygAYMySSpPgQ\nFs8bwcJZ7k0Gdhyy9ElZ23LMUgvg1bWWxfeLtJyFEF6l0ShcODqOjzfnseOQxbMRxt4jZSgK3HF5\nsmfJRJeqEmYysCu71KfmRu/Mdq9vnTJYlskUvaNTd/rKlSu54YYbWLhwIXv27Gn1mGeeeYbFixcD\nsHXrViZPnszixYtZvHgxjz76aM+VWAjh96aNca9i1bzNX12jnZxjVQzpH9JiLWONojB+eDR1jQ4O\nFVS1ei1va7A62J9bQWKsiajQnt2LWYhmHbacMzIyyMvLY9WqVeTk5JCWlsaqVataHJOdnc22bdvQ\n60/+UU2aNInnnnuu50sshPB7sRHBDBsQyoG8CkqrGsgtqkFVadEH3Sx1eDRf7TjGjkMWRg0M74PS\ntrT3SBlOl8r4Yb7TBy7OPR22nDdv3sycOXMASEpKoqqqitra2hbHPP744/z85z/vnRIKIc5J08b0\nQwVWfZnNrqY0cWvBeURCGAadhoP5vrFhRvOWjeOHRfVxScS5rMPgXFpaSnj4yW+rERERWCwnB2ek\np6czadIk4uPjW5yXnZ3NXXfdxaJFi9i4cWMPFlkIcS6YnBLLsAGhbD9oYdO+E5iC9AyMM59xnE6r\nYWCcmWOldS12a+oLDqeLPTllRIYEkhBj6tOyiHNblweEqarq+XdlZSXp6em8/vrrFBcXe34+aNAg\nli5dyvz58ykoKGDJkiV89tlnGAyGNq8bHh6MTqftanHaFR195h+6v5K6+Capy9l57O5pPPLaFvbl\nlDFhZCyxMSGtHpeSFMXhwioqG52Mie84td1bddl5sIQGq4O5kxKJaaOsPU3uMd/U23XpMDjHxMRQ\nWlrqeVxSUkJ0tLuvZcuWLZSXl3PTTTdhs9nIz89n5cqVpKWlsWDBAgASExOJioqiuLiYhISENl+n\noqL+bOvSQnS0GYulpkev2VekLr5J6tIz7rlyNJ99V8DEkTFtlqFfuHvg1c6sE8R1sCpXb9bli625\nAIxKCPXK70vuMd/UU3VpL8B3mNaeOnUqa9euBSAzM5OYmBhMJnc6Z968eXzyySe88847PP/886Sk\npJCWlsbq1at57bXXALBYLJSVlREbG3vWFRFCnHsCDFouv3AQcRHBbR4zuJ/7Q+zI8WpvFesMDqeL\n7QcthJkMDGtl20YhelKHLefU1FRSUlJYuHAhiqKwfPly0tPTMZvNzJ07t9VzZs2axbJly1i3bh12\nu50VK1a0m9IWQoj2RIYEEmI0cKSo74Jz5tFy6hodzD0/AY1sRiF6Waf6nJctW9bi8ciRI884ZsCA\nAbz11lsAmEwmXnrppR4onhBCgKIoDOkXwq7sUipqrISbvb/hRMZ+97iaSckxXn9t8f3jG8vtCCFE\nB4b0dw/A6ovUts3uZMfhUqJCAxnSzzsDwcT3mwRnIYRfGNwcnIu8v1LYvqPlWG1OJo2Klf2VhVdI\ncBZC+IXBcSEowNE+aDlbKhuAk613IXqbBGchhF8IDtQRFxnM0RM1uFxqxyec4qsdhby8OrPFOg1d\nYbW5d88KNPTsWgxCtEWCsxDCbwzpF4LV5uR4WV2Xztu6v4StWcXYHa5uvW6jvTk4y0Z+wjskOAsh\n/EZzWrmrqW27wx1cHc7uBefmlnOAtJyFl0hwFkL4jSH9QwG6PN/ZZncH5W63nJvT2noJzsI7JDgL\nIfxGfLQRvU7T5elU1qa0dHeDc/P50nIW3iLBWQjhN3RaDQNjzRRaaj2p5s6wNQVle7fT2u7dsGRA\nmPAWCc5CCL8ypH8Iqgp5xZ3feMB2li3nRrsTrUZBp5WPTOEdcqcJIfxKd1YK8/Q5n8WAMGk1C2+S\n4CyE8CuD+zUH586tFOZwunA1zW92nMWAMOlvFt4kwVkI4VeiQgMJMGgprmjo1PHNrWbofFq7wepg\n24ESz6IlVruTABmpLbxIgrMQwq8oioIpUE9do71Tx9scJweOdTatvWZrPn/9YB85x9ypc0lrC2+T\n4CyE8DvGIB11DY5OHds8GAw633JuTplX1lpxuVRsDpe0nIVXSXAWQvgdU5Aeq93ZqWDb1bS2qqrk\nnXCPBK+3Ok4uQCJLdwovkuAshPA7xkA9QKdS29YuprVLqxqpa3S3yusbHbIAiegTEpyFEH7HGNQU\nnBs6Ds72U1rOnRmt3dxqBqi32mlsWoBE0trCmyQ4CyH8jjHQnWJubuG2p6sDwnJPDc6ntJxlQJjw\nJgnOQgi/Y+pCy7mrfc55J04ublLf6Di5I5W0nIUXSXAWQvid5j7n2k4EZ2sXRmurqkruiRpCjQbg\n9AFhEpyF90hwFkL4HWNQV9LanW85lzUNBhueEIZWo8iAMNFnJDgLIfyOJ63didHap85zdnTQ59zc\n3zwozkxQgI66Rrun5SxpbeFNEpyFEH6nK2ntrrSc80tqAUiMMxMcqKPeerLPWdLawpskOAsh/E5X\nplK1WCGsg5ZzdZ0VgAhzAMZAHQ2NDholrS36gARnIYTf6dJUqi6M1q5tWhLUGKQnOECHzeHyfAEI\n1MsKYcJ7JDgLIfyOTqsh0KDtZFr7lD7nDoOz+3rGQB1BTanz8hp3a1pazsKbJDgLIfySsZM7U3Ul\nrV3XYCc4QIdWo/G0zitqGgEJzsK7JDgLIfxSZ3em6lpa2+4ZCR4c4A7O5dXulnOgjNYWXtSp4Lxy\n5UpuuOEGFi5cyJ49e1o95plnnmHx4sVdOkcIIbqrsztTNY/WVmg/OKuqSm2D3TPYLLip5VxVawOk\n5Sy8q8PgnJGRQV5eHqtWreKxxx7jscceO+OY7Oxstm3b1qVzhBDibHR2Z6rmtHZggK7dec6NNidO\nl3qy5dx0fZeqogAGnSQahfd0eLdt3ryZOXPmAJCUlERVVRW1tbUtjnn88cf5+c9/3qVzhBDibHR2\nOpXN4USv02DQa9ptOTdfx9S0+lhzWhvcrWZFUc62yEJ0WodzA0pLS0lJSfE8joiIwGKxYDKZAEhP\nT2fSpEnEx8d3+pzWhIcHo9P1bNooOtrco9frS1IX3yR16TvREcEA6AMNZ5T91MdO1b2ASKBBh9Ol\ntlnPqkZn03WNREeb6Rdb73kuOFDXZ78ff3tf2iN16bwuT9xTVdXz78rKStLT03n99dcpLi7u1Dlt\nqaio7/CYroiONmOx1HR8oB+QuvgmqUvf0jR9rhQWVRFjNnh+fnpd6hvs6LQaNArU2xxt1rOgqNJ9\nXVQslhrs1pMtcr1W0ye/H398X9oidWn9Om3pMDjHxMRQWlrqeVxSUkJ0dDQAW7Zsoby8nJtuugmb\nzUZ+fj4rV65s9xwhhOgJnj7nDtLadoeLwAAdeq2m3T7nWk9au+VobZDBYML7Ouxznjp1KmvXrgUg\nMzOTmJgYT3p63rx5fPLJJ7zzzjs8//zzpKSkkJaW1u45QgjREzq7M5XN4cSg06DXddTn7L7O6QPC\nQKZRCe/rsOWcmppKSkoKCxcuRFEUli9fTnp6Omazmblz53b6HCGE6Emd3ZnKZndh0GuaWs4qLlVF\n08rgLs/qYK22nGXpTuFdnbrjli1b1uLxyJEjzzhmwIABvPXWW22eI4QQPakzO1M5nC6cLhWDTotW\n6w7IDocLQystYU9au+m6ep0Gg06DzeGStLbwOpm4J4TwS52ZStW8OliAXote6/64a2sJz7rT+pwB\ngpoWIpG0tvA2Cc5CCL/UmZ2pmje9MOjdfc7Q9uYXpw8Ic7+G+9/SchbeJh0pQgi/pNNqCOhgZ6rm\npTsNOq1nSmdbg8Jqm6ZcGfQn2yzN/c6BEpyFl0lwFkL4rYCmPuG2NC/dqddrUF1NwbmNtLZ70wtd\ni5XAmtfXluAsvE3S2kIIv6XTadrdo9nT56zTomvuc27j+LpGe4uUNpwMzgHS5yy8TIKzEMJv6TpY\nWKS55Xxqn7Pd6cLlUrGess+zw+miweo8Mzg3pbWlz1l4mwRnIYTf6mjVr5MDwrQtBoS9v+EIv3xx\nE/VNc6SbB5UZ22g5B8o8Z+FlEpyFEH5Lp9W02YcMJ9PazSuEgTutnVdcQ22DnbwT7vWRWxupDdA/\n0ghATFhQj5ddiPbI10EhhN/S6RQcjrY31jm15ex0nRytXVvvDsZ5xbWMGhTR6hxngEnJsQxPCCMi\nJLA3ii9Em6TlLITwW3qtBpeq4nK1HqBbbTk7XZ6Wcn5Jy5azMbBlcNYoigRm0SckOAsh/Jaug1W/\nTg4IO2WFMIeLmqZgXFBcC7Sd1hair0hwFkL4Lc8grzaCs7V5EZJTRms3WB1Ybe6gXVRWj83ubDOt\nLURfkeAshPBbzS3ntuY6e1rOupOjtStqrZ7nXarKsdI6aTkLnyPBWQjhtzpOa5/c+KL52Moad3Bu\nXvUr90QNOw+XotUoxITLqGzhGyQ4CyH8ll7XtA2ks/UBYfZWNr6oaArOIxPDAVi7NZ8T5fVMSYkj\nxGjo7SIL0SkSnIUQfqujtLa1qeWsP2W0dnlTcB6eEIZWo1BS2QDAvAsSe7u4QnSaBGchhN/qMK3d\nygphzWntMLOBfpHBAIwfFkX/KGNvF1eITpPgLITwWx2N1m5t44vmXazMQQaS4kMBmD95YG8XVYgu\nkRXChBB+q7OjtfWn9Dk3MwXpufaiJKaN7UdS/9DeLagQXSTBWQjht3Ra94AwexsDwmwOFzqtgkZR\nPIuQNDMH6zEF6TEFSWAWvkfS2kIIv9UccNtKa9sdLvQ695Sp01vOp+9AJYQvkeAshPBbug76nO1O\nF4amY3SntJwNOg0BetmjWfguCc5CCL+lO2W97NY4HE5Pi/nUlrMpWFrNwrdJcBZC+K2O0to2h8sT\nlLUaBcXdRS3LdAqfJ8FZCOG3Tqa121ohzOUJ4IqieAK1BGfh6yQ4CyH8lme0dhtpbfspLWc42dKW\n4Cx8nQRnIYTfai+t7XKpOF1qi+Dc3NI2B8ka2sK3SXAWQvgtXTvBuXlJz+apVHBKy1kGhAkf16lF\nSFauXMnu3btRFIW0tDTGjh3ree6dd97h3XffRaPRMHLkSJYvX05GRgb33Xcfw4YNA2D48OE8/PDD\nvVMDIcT3VnNLuLW1tZtT3S3S2tLnLPxEh8E5IyODvLw8Vq1aRU5ODmlpaaxatQqAhoYGPv74Y95+\n+230ej1Llixh586dAEyaNInnnnuud0svhPhe86S1HWcOCJPgLPxZh2ntzZs3M2fOHACSkpKoqqqi\ntrYWgKCgIN544w30ej0NDQ3U1tYSHR3duyUWQogmzQPCWk1rN+1IdeqynZLWFv6iw+BcWlpKeHi4\n53FERAQWi6XFMa+88gpz585l3rx5JCQkAJCdnc1dd93FokWL2LhxYw8XWwghup/WNkvLWfi4Lm98\noapnpo/uvPNOlixZwh133MGECRMYNGgQS5cuZf78+RQUFLBkyRI+++wzDIa2R0iGhwej0/XscnrR\n0eYevV5fkrr4JqlLH9Ppmv6nbVH+6GgzVY3ulnNoSKDnueBg92dQYnw40eFBXi5s9/jl+9IGqUvn\ndRicY2JiKC0t9TwuKSnxpK4rKys5fPgwEydOJDAwkBkzZrBjxw4mTJjAggULAEhMTCQqKori4mJP\nq7o1FRX1Z1uXFqKjzZXfHekAABJqSURBVFgsNT16zb4idfFNUpe+V11nA6C2zuopf3NdSkrdj+02\nh+e5fuFBRIYE4rDasFgcfVPoLvDX96U1UpfWr9OWDtPaU6dOZe3atQBkZmYSExODyWQCwOFw8NBD\nD1FXVwfA3r17GTx4MKtXr+a1114DwGKxUFZWRmxs7FlXRAghTnVyKtWZGT1bK2ntay9K4om7prTY\nBEMIX9Rhyzk1NZWUlBQWLlyIoigsX76c9PR0zGYzc+fO5Z577mHJkiXodDpGjBjB7NmzqaurY9my\nZaxbtw673c6KFSvaTWkLIUR36HXNK4Q5z3iutT5nAI1G6f2CCXGWOtXnvGzZshaPR44c6fn3Nddc\nwzXXXNPieZPJxEsvvdQDxRNCiLZpm3elaqXl7GgOztJKFn5I7lohhN/SKApajdLGVCr3zwyyb7Pw\nQxKchRB+TafTeFrJp/Is3yktZ+GH5K4VQvg1vVbT6jxnm71pERKdfMwJ/yN3rRDCr+m0baS1m36m\nk+As/JDctUIIv6bTalqdStXWaG0h/IHctUIIv6bXaTyB+FSeAWESnIUfkrtWCOHX3C3nzq2tLYS/\nkLtWCOHXOgzOMlpb+CG5a4UQfk2vVXA41TM25ZGWs/BnctcKIfxac/A9fVCYZ55zD+92J4Q3SHAW\nQvi1k5tftExtS8tZ+DO5a4UQfq15HvPpC5FIcBb+TO5aIYRfax7wdfoSns07VcmAMOGP5K4VQvi1\n9tLaWo0iW0QKvyTBWQjh106mtc8crS0pbeGv5M4VQvg1ndbdMj4jre10yepgwm/JnSuE8Gv6dtLa\n0nIW/krX1wUQQoizcWqfc1FZHfUOlWCdgt3hIjBAPuKEf5KvlUIIv3bqVKq/fpDJ71/fCoDN4ZKR\n2sJvyddKIYRfOzmVSsVS2YDD6UJVVUlrC78mwVkI4deaB4TVNtix2t1zmxusThwyIEz4MblzhRB+\nrTmtXVbd6PlZZa0VkNXBhP+SO1cI4dea09plVSeDc0WNBGfh3+TOFUL4tebR2qVVDZ6fSXAW/k7u\nXCGEX2sOzqemtSua09oyWlv4KblzhRB+Ta9zDwgrr7Z6fuZpOetlL2fhnyQ4CyH8WnPL2ek6ubZ2\nZY20nIV/+//27j2mqbOPA/j39IJQqIPOFrZkTF6jYrhsY2p0MNwU3bxusomYsWrijSgCiwSROMo/\nOm8zmdsSp3GbTpd0I8SQaIKZ/mMMFycLE5bNqQkhyyItlkuRvQo57x++noEUWiZyntN9P//Yc9qn\n/p48fc7X8/T0yE8uEWmawUcA8ztn0rqAfue8Z88eNDY2QpIklJaWIjk5WXnuu+++Q0VFBXQ6HeLj\n4+FwOCBJ0ohtiIjGiq8A9vCnVKRxfsO5vr4eLS0tcDqduHnzJkpLS+F0OgEAvb29OHv2LE6fPg2j\n0Qi73Y6ffvoJfX19w7YhIhpLA8+co8wT4On+L7p77gFgOJN2+f3k1tTUICMjAwAwZcoUdHZ2wuv1\nAgDCwsJw4sQJGI1G9Pb2wuv1wmq1jtiGiGgsPbxDGABMeioUE0L0ePjtM8OZtMrvJ9ftdiMqKkrZ\ntlgscLlcg15z9OhRLFy4EG+++Saee+65gNoQEY2FgRd9PRUeArMp5O/nGM6kUaO+t7Ysy0P2bdq0\nCXa7HRs3bsTLL78cUJtHRUWZYDCM7c8erFbzmL6fmtgXMbEv6tNPMCqPYyZF4E73Pbg7HtyQ5Oko\nk2b79ZDW6x+IfQmc33C22Wxwu93KdltbG6xWKwCgo6MDv//+O2bNmoXQ0FCkp6ejoaFhxDbD8Xju\n/tM++GS1muFydY/pe6qFfRET+yIGb+995bFRL8Ec/ndY9969p9l+Adoel0exL77fZzh+13xSU1NR\nXV0NAGhubobNZkNERAQAoK+vDyUlJejp6QEAXLt2DXFxcSO2ISIaS1zWpmDk98w5JSUFCQkJyM7O\nhiRJcDgcqKyshNlsxsKFC7F161bY7XYYDAZMnz4dCxYsgCRJQ9oQET0JBsPfF4RFRoTAHM5wJu0L\n6DvnoqKiQdvx8fHK48zMTGRmZvptQ0T0JOh1OkgSIMvAU+ETMHHAmXPIGF/HQjRe+M9KItK8h0vb\nE8NDMJFnzhQE+MklIs0z6HWQAJhNxsHL2ry3NmnUqH9KRUQkGoNBhwi9EQa9jheEUVBgOBOR5qW/\n8Cx0/78ujMvaFAwYzkSkeZnp/1Ee88yZggE/uUQUVPhTKgoG/OQSUVAJDzVAJz1Y42Y4k1bxk0tE\nQUWSJISHPQhovY6HONImfnKJKOhEhBlhNPLwRtrFC8KIKOgsnfs8unru+38hkaAYzkQUdF5JfEbt\nEogeC9d9iIiIBMNwJiIiEgzDmYiISDAMZyIiIsEwnImIiATDcCYiIhIMw5mIiEgwDGciIiLBMJyJ\niIgEw3AmIiISDMOZiIhIMAxnIiIiwTCciYiIBMNwJiIiEgzDmYiISDAMZyIiIsEwnImIiATDcCYi\nIhKMIZAX7dmzB42NjZAkCaWlpUhOTlaeq62txaFDh6DT6RAXF4fdu3fjypUrKCgowNSpUwEA06ZN\nw4cffvhkekBERBRk/IZzfX09Wlpa4HQ6cfPmTZSWlsLpdCrPl5WV4eTJk4iJiUF+fj4uXbqE0NBQ\nzJ49G4cPH36ixRMREQUjv8vaNTU1yMjIAABMmTIFnZ2d8Hq9yvOVlZWIiYkBAFgsFng8nidUKhER\n0b+D3zNnt9uNhIQEZdtiscDlciEiIgIAlD/b2tpw+fJlFBQU4Pr167hx4wZyc3PR2dmJvLw8pKam\njvj3REWZYDDoH6cvQ1it5jF9PzWxL2JiX8TEvoiJfQlcQN85DyTL8pB97e3tyM3NhcPhQFRUFCZP\nnoy8vDwsXrwYra2tsNvtOH/+PEJCQoZ9X4/n7mhLGZHVaobL1T2m76kW9kVM7IuY2BcxsS++32c4\nfpe1bTYb3G63st3W1gar1apse71ebNy4EYWFhUhLSwMAREdHY8mSJZAkCbGxsZg0aRJu3779OH0g\nIiL61/AbzqmpqaiurgYANDc3w2azKUvZALB3716sXbsW6enpyr6qqiocP34cAOByudDe3o7o6Oix\nrp2IiCgo+V3WTklJQUJCArKzsyFJEhwOByorK2E2m5GWloYzZ86gpaUFFRUVAIBly5Zh6dKlKCoq\nwoULF3D//n2Ul5ePuKRNREREfwvoO+eioqJB2/Hx8crjpqYmn22OHDnyGGURERH9e/EOYURERIJh\nOBMREQmG4UxERCQYhjMREZFgGM5ERESCYTgTEREJhuFMREQkGIYzERGRYBjOREREgmE4ExERCYbh\nTEREJBiGMxERkWAYzkRERIJhOBMREQmG4UxERCQYhjMREZFgGM5ERESCYTgTEREJhuFMREQkGIYz\nERGRYBjOREREgmE4ExERCYbhTEREJBiGMxERkWAYzkRERIJhOBMREQmG4UxERCQYhjMREZFgDIG8\naM+ePWhsbIQkSSgtLUVycrLyXG1tLQ4dOgSdToe4uDjs3r0bOp1uxDZEREQ0PL/hXF9fj5aWFjid\nTty8eROlpaVwOp3K82VlZTh58iRiYmKQn5+PS5cuISwsbMQ2RERENDy/y9o1NTXIyMgAAEyZMgWd\nnZ3wer3K85WVlYiJiQEAWCwWeDwev22IiIhoeH7D2e12IyoqStm2WCxwuVzKdkREBACgra0Nly9f\nxrx58/y2ISIiouEF9J3zQLIsD9nX3t6O3NxcOByOQaE8UptHWa3m0ZaiynuqhX0RE/siJvZFTOxL\n4PyeOdtsNrjdbmW7ra0NVqtV2fZ6vdi4cSMKCwuRlpYWUBsiIiIant9wTk1NRXV1NQCgubkZNptN\nWcoGgL1792Lt2rVIT08PuA0RERENT5IDWHM+ePAgfvzxR0iSBIfDgV9++QVmsxlpaWmYNWsWXnrp\nJeW1y5Ytw+rVq4e0iY+Pf6IdISIiChYBhTMRERGNH94hjIiISDAMZyIiIsGM+qdUWqD1W4fu378f\nV69eRV9fHzZv3oyLFy+iubkZkZGRAID169fjtddeU7fIANTV1aGgoABTp04FAEybNg0bNmxAcXEx\n+vv7YbVaceDAAYSEhKhcqX/ff/89qqqqlO2mpiYkJibi7t27MJlMAIAdO3YgMTFRrRL9un79OrZs\n2YJ169YhJycHf/75p8+xqKqqwokTJ6DT6ZCVlYVVq1apXfoQvvqyc+dO9PX1wWAw4MCBA7BarUhI\nSEBKSorS7uuvv4Zer1ex8qEe7UtJSYnP+a7FccnPz4fH4wEAdHR04MUXX8TmzZuxfPlyZa5ERUXh\n8OHDapbt06PH4aSkpPGdL3KQqaurkzdt2iTLsizfuHFDzsrKUrmi0ampqZE3bNggy7Is37lzR543\nb568Y8cO+eLFiypXNnq1tbXytm3bBu0rKSmRz507J8uyLH/88cfy6dOn1SjtsdTV1cnl5eVyTk6O\n/Ntvv6ldTkB6enrknJwcedeuXfI333wjy7Lvsejp6ZEXLVokd3V1yb29vfLSpUtlj8ejZulD+OpL\ncXGxfPbsWVmWZfnUqVPyvn37ZFmW5dmzZ6tWZyB89cXXfNfquAxUUlIiNzY2yq2trfLKlStVqDBw\nvo7D4z1fgm5ZW+u3Dp01axY++eQTAMDEiRPR29uL/v5+lasaO3V1dViwYAEA4PXXX0dNTY3KFY3e\n559/ji1btqhdxqiEhITg2LFjsNlsyj5fY9HY2IikpCSYzWaEhoYiJSUFDQ0NapXtk6++OBwOvPHG\nGwAenIl1dHSoVd6o+OqLL1odl4du3bqF7u5uzaxi+joOj/d8Cbpw1vqtQ/V6vbJMWlFRgfT0dOj1\nepw6dQp2ux0ffPAB7ty5o3KVgbtx4wZyc3OxZs0aXL58Gb29vcoy9tNPP62psQGAn3/+Gc8884xy\nU53Dhw/jvffeQ1lZGf766y+VqxuewWBAaGjooH2+xsLtdsNisSivEXH++OqLyWSCXq9Hf38/vv32\nWyxfvhwAcO/ePWzfvh3Z2dn46quv1Ch3RL76AmDIfNfquDx08uRJ5OTkKNtutxv5+fnIzs4e9HWR\nKHwdh8d7vgTld84DyRr9pdgPP/yAiooKfPnll2hqakJkZCRmzJiBo0eP4rPPPkNZWZnaJfo1efJk\n5OXlYfHixWhtbYXdbh+0CqDFsamoqMDKlSsBAHa7HdOnT0dsbCwcDgdOnz6N9evXq1zhPzPcWGhp\njPr7+1FcXIw5c+Zg7ty5AIDi4mKsWLECkiQhJycHM2fORFJSksqVjuytt94aMt8H3ksC0Na43Lt3\nD1evXkV5eTkAIDIyEgUFBVixYgW6u7uxatUqzJkzx+/qgRoGHocXLVqk7B+P+RJ0Z87BcOvQS5cu\n4ciRIzh27BjMZjPmzp2LGTNmAADmz5+P69evq1xhYKKjo7FkyRJIkoTY2FhMmjQJnZ2dyhnm7du3\nhZyQI6mrq1MOlAsXLkRsbCwAbY3LQyaTachY+Jo/WhmjnTt34vnnn0deXp6yb82aNQgPD4fJZMKc\nOXM0MUa+5ruWx+XKlSuDlrMjIiLwzjvvwGg0wmKxIDExEbdu3VKxQt8ePQ6P93wJunDW+q1Du7u7\nsX//fnzxxRfK1Zrbtm1Da2srgAfh8PDqZ9FVVVXh+PHjAACXy4X29nZkZmYq43P+/Hm8+uqrapY4\nKrdv30Z4eDhCQkIgyzLWrVuHrq4uANoal4deeeWVIWPxwgsv4Nq1a+jq6kJPTw8aGhowc+ZMlSv1\nr6qqCkajEfn5+cq+W7duYfv27ZBlGX19fWhoaNDEGPma71odFwC4du3aoDtE1tbW4qOPPgIA3L17\nF7/++ivi4uLUKs8nX8fh8Z4vQbesnZKSgoSEBGRnZyu3DtWSc+fOwePxoLCwUNmXmZmJwsJChIWF\nwWQyKR9s0c2fPx9FRUW4cOEC7t+/j/LycsyYMQM7duyA0+nEs88+i7ffflvtMgPmcrmU75ckSUJW\nVhbWrVuHsLAwREdHY9u2bSpXOLympibs27cPf/zxBwwGA6qrq3Hw4EGUlJQMGguj0Yjt27dj/fr1\nkCQJW7duhdks1v8k5Ksv7e3tmDBhAt5//30ADy4GLS8vR0xMDN59913odDrMnz9fuAuSfPUlJydn\nyHwPDQ3V5Lh8+umncLlcygoTAMycORNnzpzB6tWr0d/fj02bNiE6OlrFyofydRzeu3cvdu3aNW7z\nhbfvJCIiEkzQLWsTERFpHcOZiIhIMAxnIiIiwTCciYiIBMNwJiIiEgzDmYiISDAMZyIiIsEwnImI\niATzP6nkoOPIds3GAAAAAElFTkSuQmCC\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fd0aaa51860>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n7bXfc9ZZ5+N2u3nxxed75fO1nnAforr0TapL36S69E2qS8f7ao9awiIiMuB0tp7wuHETTChR+xTC\nIiIy4HS2nnBfooFZIiIiJlEIi4iImEQhLCIiYhKFsIiIiEkUwiIiIiZRCIuIiJhEISwiImIShbCI\niIhJFMIiIiImUQiLiIiYRCEsIiJiEoWwiIiISRTCIiIiJlEIi4iImEQhLCIiYhKFsIiIiEkUwiIi\nIiZRCIuIiJhEISwiImIShbCIiIhJ7N150eLFi9m8eTMWi4X777+fCRMmtGx75ZVXWLZsGVarlXHj\nxvHrX/+61worIiIykHTZEl67di05OTksWbKERYsWsWjRopZtHo+HF154gVdeeYXXXnuNnTt3smnT\npl4tsIiIyEDRZQivWrWK2bNnA5CSkkJlZSUejwcAh8OBw+GgtrYWr9dLXV0d4eHhvVtiERGRAaLL\nEC4pKSEyMrLlcVRUFMXFxQAEBgZy6623Mnv2bM444wwmTpxIcnJy75VWRERkAOnWNeFDGYbR8rPH\n4+HZZ5/lww8/xOl0cu2117Jt2zZGjx7d4fsjI0Ow221HVtoOxMa6enR/ZlJd+ibVpW9SXfom1aX7\nugxht9tNSUlJy+OioiJiY2MB2LlzJ0OGDCEqKgqAyZMnk5GR0WkIl5fXHm2ZW4mNdVFcXN2j+zSL\n6tI3qS59k+rSN6kuHe+rPV12R8+YMYPly5cDkJmZidvtxul0ApCYmMjOnTupr68HICMjg2HDhvVI\ngUVERAa6LlvCkyZNIi0tjfT0dCwWCwsXLmTp0qW4XC7mzJnD9ddfz7x587DZbJx44olMnjz5WJRb\nRESk3+vWNeH58+e3enxod3N6ejrp6ek9WyoREZHjgGbMEhERMYlCWERExCQKYREREZMohEVEREyi\nEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURETKIQFhERMYlC\nWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAph\nERERkyiERURETKIQFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRF\nRERMohAWERExiUJYRETEJAphERERkyiERURETKIQFhERMYlCWERExCQKYREREZMohEWk36ipb2Jl\nRgGGYZhdFJEeYTe7ACIi3fXON7v5ZH0ecZEhuN1hZhdH5KipJSwi/cb2vRUAVNY0mlwSkZ6hEBaR\nfqGmvom8Ik/LzyIDgUJYRPqFrNxKDl4JrqnzmloWkZ6iEBaRfmFHbkXLz7UNagnLwKAQFpF+YXtu\necvPNfVqCcvAoBAWkT6vrsFLzn4P0WFBANQqhGWAUAiLSJ+3c18lfsPgxNQYAGrq1B0tA4NCWET6\nvB15zdeDxw2Pxm6zqDtaBgyFsIj0eXv2VwMwPCGM0CAHtbpFSQYIhbCI9GmGYbB3fzXRYUE4gx2E\nBNnVEpYBo1shvHjxYubOnUt6ejpbtmxpta2goIArr7ySyy67jIceeqhXCikix68KTyNVtU0kxTkB\nDrSEvZo/WgaELkN47dq15OTksGTJEhYtWsSiRYtabX/kkUf4+c9/zptvvonNZiM/P7/XCisix5+c\nwuau6KHxLgBCguz4DYO6BrWGpf/rMoRXrVrF7NmzAUhJSaGyshKPp3nqOL/fz4YNG5g1axYACxcu\nJCEhoReLKyLHm70HQjgprjmEQ4Oa153x1Oq6sPR/Xa6iVFJSQlpaWsvjqKgoiouLcTqdlJWVERoa\nyu9//3syMzOZPHkyd999d6f7i4wMwW63HX3JDxEb6+rR/ZlJdembVBfz7C+vA2DS2Hiiw4OJjgwB\nwFPXxPDEcDOL1qP623HpjOrSfYe9lOGh12EMw6CwsJB58+aRmJjIjTfeyBdffMHpp5/e4fvLy2uP\nqKAdiY11UVxc3aP7NIvq0jepLubK2ltBWIgDX0MTxcVerAe+gzx1jf2uLh3pj8elI6pLx/tqT5fd\n0W63m5KSkpbHRUVFxMbGAhAZGUlCQgJJSUnYbDamT59OVlZWjxRYRMRT10RpVT1J8S4sFgvQPDAL\noFrd0TIAdBnCM2bMYPny5QBkZmbidrtxOptHKdrtdoYMGcKePXtaticnJ/deaUXkuHLwevDQuB9a\nESG6JiwDSJfd0ZMmTSItLY309HQsFgsLFy5k6dKluFwu5syZw/3338+CBQswDIORI0e2DNISETla\newubB4EeGsIHW8I1dY2mlEmkJ3XrmvD8+fNbPR49enTLz0OHDuW1117r2VKJiAC78isBSIpvpyWs\n+aNlANCMWSLSJxmGQVZeJeHOAGLDg1qe1y1KMpAohEWkTyqqqKOyppGRgyNaBmUBhAYfHJil7mjp\n/xTCItIn7chtXjlp5JCIVs+HqjtaBhCFsIj0SVm5zdeDUwe3npDDYbfhsFsVwjIgKIRFpE/akVdB\ncKCNwbHONttCguzU6JqwDAAKYRHpcyo9DRSV1zEiMQKr1dJme2iQQ9eEZUBQCItIn7Mjr7kreuSQ\n9ueGbl5TuAm/ljOUfk4hLCJ9zva95QCkDo5od7szyIFhQL2WM5R+TiEsIn2K1+dn7fdFOIMdDE8I\na/c1ByfsqKnvXggbhsG+Yg8+v7/HyinSEw57FSURkd60ObsET10TcyYPwW5rv53wQwg3EUtwp/tb\nnbmfD1bvJa/Yw4mpMdxy8ThsVrU/pG/Qb6KIHDPf55Szeuv+lmu5hmG0Wh4V4OstBQCcOnFQh/tx\nHpg/uqqm88FZ3+8p47l3t5JfUkNMeBDfZpXw8kc72nymiFnUEhaRYyKv2MP/e2MzXp+fj9flkZYc\nyerMQiwWePDaKTiDHZRXN/DdrlKSB7navTXpoIPd1Fv3lDMhJabD123Nab62fNsl4xmVFMGjr27k\ny035xEYEc960oT1bQZEjoJawiPS6Jq+f55ZtxevzM2ZoJLsLqnhvZQ7l1Q0UV9Tz8kfbAfhkfS6G\nAadOSOh0f6OSIgkOtLEpq6TTVm1WXiUWC4xKiiA40M5dl08k0hXI0i93tczIJWImtYRFpNf931e7\nyCv2MPOEBK49ZzTZ+yopr25gXHIUT7yxibXfF1FVs5FteysIC3EwdUxcp/tz2K1MGhXHii355JfW\nkhgT2uY1Xp+f3QVVDIl1EhzY/FUX7gzkpgvTeOzVb3l2WSYP/2wKrpCAXqmzSHeoJSwivaq8uoGP\n1+cSGxFE+qxUAEYkhjNltJvgQDs3/HgsgQ4b2/ZWkOR28ut5k1sGXnVmalo8AJuyitvdnrO/miav\nnxH/Nu3lyCER/OTUZMqrG3jry51HWTuRo6MQFpFe9cmGXHx+g/OnDyMwwNZme1xkCLdePI4LZwzj\nvmtOIjai89HOB00eE4fFApuyS9rdnnVgwo9/D2GA86YPxR0ZzMqMwi4Hdw1kfr+hCU9Mpu5oEek1\ndQ1evvg2n7AQB9PTOu5iHjc8mnHDow9r32GhAaQOjiArt4LKmkbCQ1t3K2flHViFqZ0JP6wWC3Mm\nD+GVj3fwxaZ9XDgjucPP8dQ1YbdZCAro/Ovy1Y938H1OOWdNGcL0cfEd3l5ltpr6JvYV17D2+0JW\nZRZit1mYeUIi09PicEcG6/atY0whLCK95uvN+dQ1eDnn1GQc9rat4KN1YmoMO3Ir2LC9iFmTBrc8\nbxgG2fsqiQoLJCosqN33zhgfz9KvdvHZxn2ce/JQHPa24eP1+XnwhTU4gx08OG8yAY4f6tB8exVY\nrRbKqur5dGMehgEv/msbb3yeTWKskxGJ4Zw7LYnQA7dUmSG/pIbn3s2ksKwOA4PGph8mLAkPDcDr\n8/Peyj28t3IPdpuF6PBgwkMcRIcHMzwhjCFuJ+GhAYQE2bFZrQQ4rH32D4z+SCEsIr3Cbxh8siGP\nAIeVMw4JyJ508tg4/vn5Tr7ZUtAqhIvK66iubWLqGHeH7w0KsDNzYgIfrt3LyowCZp6Q2OY123LK\nqfQ0Uulp5J+f7+Sqs0YCza3JJ5Zswu+HBVdP4otN+zAMuOS04VTWNLJlZwlZuRXsyK3gmy35pJ+Z\nyslj47BY2i5Gcbiqahp568udnJAaw4mpsR2+prSqnvySGl79ZAd1DT6S3E4sVgthIQEMig5hVFIE\nE1Ki8foM1mwtZEduBfklNZRW1VNUVsuOvEpWZe5vd/9hIQ5iI4JJHRJB6uBwBkWHEuUKxDCaew6q\nahuxW63durbfGcMwKK6oIyjQTtgAHUCnEJajUt/obT7pqusp2plHZWE5NoeNmLhIwocMYvCg8HZb\nGDLwbc8pp6SynlMmDMIZ3DstwQhnIBNSotmUXUJukYch7uZ7i7/5rnnCj9FJkZ2+f9ZJiXy6MY+X\nP9qB3WZlxvjWE4Rs3NE86MsZ7ODTjXkMTwxjYko0f3pzC7sLqgF47ZMsNmUVExpkZ86UIQQ6bFw1\nZyQNTT4+WZ/Luyv28Ny7W/l6SwHXnD2K+KiQI66vz+/nL+9ksG1vBV9vKWDKaDcBDiu7C6oZOzSS\ni05N5pstBbz5xU58/uZrvQ67lRsvHMu0sfHt7tNmhdMmJnDaxIRWn1NYVseu/Cr2l9VSVdNIbYMX\nv9+gvtFLeXUDe/ZXszO/ig/XdFzescMiOXVCAmnJUV3+DtTWeymuqKOooo7iijr2l9Xy/Z4ySqsa\nAIhwBpAU52KI28kJI2JISWx/cY/+RiF8DPkNg6qa5r+qvT4/NquFwW5nv+ja8RsG2dmF7NywjaqK\nWkqqG9jTYKfU3vbWEPDC9v3AfmxWC0n2BlKCfIyZMoqxE5PbHZwjA8833zW3ok4Z3/HMVz3hlAmD\n2JRdwjdbCrhydmrzaOx1uUQ4A5g+rv3gOSgmPJhfXTGRp976jhfe/576Rh9nntTcovb7DTZmleAK\ncfCrK05g0Uvref7drS3vnTrGTV5xDV9tzgfgnKlJBB7SXR3osHH+9GFMHRPHKx/vYMvOUh7+61r+\n88oTOwyQsqp6VmbsZ1d+FVPGuDl5TBy78qv4NquYuKgQ8oo8bNtbwbjkKGrqvazbVgSAzWohv6SG\nLzbl4/X5CQtxMC0tnpBAO5NGxjLY3fHEJ+2xWa0kxISS0M6tXwc1NPrIzq9kd34VheW1VHgasVkt\nBAc58Hp9VHga2LqnnK17midMGRwbysghESQPCqO23ktZdT1NXj8NjT52768mv6SmzWeEBtmZPCqW\nJq+fvUUetuwsZcvOUt5flcPIweGcnBZPYkwo4c4AAuw2XCGOTr9P/YZBSWU9NXVNhAbZCXcGtjpm\nZlAI97LGJh8Z3+7im+xKMvM9NHlbTyAf6GtiZIKLUWMSmT4hgfAge7vrp5olv7CK1Rv2sDrHQ0ll\n/YFng4AgIqllfIwdZ1wMYQ0e4gINIgfH4mvyQWMDmdU29hR5yM33srsxgE8+3Yvj412Mtdcw/szJ\nTBwRS3R4+9frpH+ra/CyYXsR7ohgUtsZndyTJqREExbiYFXmfi47PYV3V+ym0evnp6cO79YX7Kik\nSO6/5iQee3Ujb3yezfjhUbgjQ8jeV0lVTSOnTRzE0HgX91w5iTVbC8neV0lcVDA3/Hgs+4pr+N0/\n1uP3G5w+qW13NkBsRDC/vGwCa7YW8vx7W3nqrS08MG8yMf82Cvzj9bm8/mkWBwcrb8ou4dWPd7RZ\npMIdGczNF40jMMBK5u5ywkMDSIgJYfnaXN5buYdxyVFcf/4Ywp2BR/YP2k2BATbShkWRNiyqdX1j\nXRQXN/cSFJTWtHR178qvIq+4BtjXZl8BDiujkyJIjHESGxlMbEQQ7ohg4qNDWg0Uq65tZFd+FZ9t\n3Md3u0pblrw8yGa1kBATSpLbSVKci5AgO9W1TRSV15Jb7CGvuIaGRt8Pn2u3Mi0tnhNTYyivbqC+\n0cfQOCfDBoW13Fve2yzGMZ5E9eDB6SmHHvC+oMnrJ3tnIVlrt7I9r4osIxSvtflgJsSEkmitJ7qp\nBrvdRn1DE9vLvOTaf1gpJsTbwOjAelKSokiakEpkbDjOEAeuYEePXE/qSlllHdvWb2dHZi47qvzs\nt7uA5hNu8vAIJg1xEZUYQ6QriLDQjq/RHHpcmrx+cvaWkvHNZjbv9ZBzSH2TvFXEB0FIkI3I8BAi\nBscRNSyBqLBA/H6DmpoG6soqqa2owmMJpMYeSF1+IXX5RRTV+cn3N3/RREcE43JHElxZRnCth4AA\nGxERoQybOILklPijOqH62u/Y0ThWdfl6cz4v/msbF5+azAWdjDw+GofWZclnWSxfm0tggI3GJh/x\nUSH85vqphzXSd83WQp5dlsm45CjuumIiSz7L5qN1udx5+UQmpHQ8cnv9tiJq6pvavab87z7dkMcr\nH+8gISaU688fQ/Kg5nNh8+5y/rTkW8KdAVx86nCGDwpj+bq9bNxRzJihUZwyfhClVfXsLazm7KlJ\nHbZQvT6/6T1rHf2OeX1+9uyvZm9hNa6QAKLCAgm027DbrcSEBx12ufNLatiVX0VBaQ3VtU00en2U\nVNaTV+Sh0dt2tSyb1UJ8dAiDY5sHmtXWe9m2t/yQxsUPQgLtPHLzdJKTonrsfImNdbX7vEK4BxiG\nwfZt+1i5dhcbyppbAQBWw88wfzVjBoUy9ewpDEls//pUpaeBbXsr2LPiWzYXNrQE36HCvXWMCGxk\nUHQosYnRxCQn4o6LIDIsEOsRhrPX56egpIaCrFx2bt9Hht9FQWlty/YQXwNjAhuYMm0kE08edVjd\nNp0dl9LKerbsLGHzlr18n++hyXpkAWk1/MT5arBhUBQQRmMHq9QFWGHGCYmcNXkIcUdwPa4v/I71\nlGNVl0de3kBWXiWP/cePeq2349C6VHiaJ97YXVBNSUUdt1w8vtPgbI9hGDyxZBOZe8qZkBJNdl4l\nfsPgT3ec2qPjGl7/NIuP1uUCzZOWWCywc18lwYF2Flw1icRO5szuD8w+Xw5ez95bVE1Do4+w0ACi\nw4IYFB3a5jj6/Qabd5awt9BDTHgQgQ4bu/dX0dTk54pZIxgUH64Q7orZB3zDiq0s+2IHubbmv2ij\nXIFMSo0mLTaA1DFDCDmMWxMO1qW8uoFdW/eSu6uAykg3lWUecncVtHv91W4Fd2M1w10WxkxMJnlC\nCrERQW1aAH7DoKSijn3FNewrqWHnmgy21TposP1QvkC7lVFDIxnn9DHqhBQS48OOOOC7e1x8fj+1\n9c2Du8pLqigr81Dqs1OeV4SjtJiQkABCnMGEhoUQ7I4mJCqc0CA7IUF2wkMDW04qwzBoPHB9qaHJ\nR0Ojj+LcQnZn7GFVTTClVfVYDIOTHNVMP308IVFhREU5uzUxxLH+HausrmfL+iwyqywUltVRm78f\ni99PlM1HcpyT8396OiHBRzZS9FjUpayqnvl/XsnopAju+emkXvuc3qhLYXktC/+6lsam5jEb55yc\nxKUzU3r0MwzDYNveCt75ehc7DsxtHR8Vys/PH01KQv8fbGT2d3JP6sm6KIR7WG19E6++8AkrqwOx\n+X1MDa5j5vlTGJEa32vBVelpoLCwkpLd+RRVN7HfGkxJfimFpTXU2H9obdgwCAkJwN7YgK2+Fpth\nUGENahW4AEO8VaRG2Bg0OIbBacmkDHf3WFdWXzoRfX4/Gzbn8sm/viXb+kNXuMUwmDV5CJfOHN7p\nRAzHqi7FpR6Wv/EVX5XbWy5hBNituBpqMAw/FbZg/BYrkb46rr5iaoe3p3TmWNTlo7V7ef2zbK45\nexRnnNh1F+2R6q26lFXV4/UbRIcF9vrEFfWNXgIcNuLcYX3mfDlafencP1rHIoQ1MOsw+fx+vtqY\nxzsrc6iqDWSEUcXPrz+D+Lje/ws23BlIuNPNyJTW9z76DYO8gkq2r85kX24p+wLDqbU58HkbMIAm\ni5V4o5bBgVYGjUkmISWBofEuIl29O3Cjr7BZrUw9cShTTkhiZ3YBWRuyaGxoYq0ngE835LFxSy6n\nxhhMmjOZ+FhXqwkZDt6S4alrwm8YOIMdR/xHVkf27K/io3fWsrYM/JYg4v3VzBoby9gZ4xkU42wZ\nC9Dk9fPx0hW8vdvgqbe+Y/aJCVwxe2SPXgO0lJbiWL0SS10tDZfNxZa1A9cd/wFWK1itGDYbjWed\nS90tt2PLzCD45b9hhIRihIZiOAJoOnk667bbsAAz1r5P0EYDLFawWGg65TR8qSOxr1+L/bstcMjf\n/41nnYN/8BAcX3+Jbc9usFha/ms478cYEZE4Pv8Ua0nxD9vCQ2Dm2eBw4PjsEyyNjWC3YdjsEBRE\n0/QZANg3bTxQdjvY7RjBwfiThoLXi233LiyeaiweDxaPByM8nKgfnYJ1Xx7Bz7yApboKS3U1lupq\nGk+bSf0NNxPw0b9w3XU7Fk81NDVBQAA1dy+g7vY7CVj+LwL/7038CYn4UkbgSxmBN20chius3X/v\nrmbhkoFPvwHd5DcMNqz4nne+yCLf7iLQYePSmcM55+Qk06d5s1osJCVEkHTJDFPL0ddZLBZGpCYw\nIrX5fsjzvD7eXZnDJ99ksazAwbJ/bAQg1FuPNzgUr8/fcq/lQXa/j5gYFyMGhzMu0sboicOOaBKB\nhkYfWzfv5pMNeXxf4QesDPVXcc6pI5h8yunt/k457FbOu+JUJpbU8Oel3/HJt/lkrd/G5OERjDtl\nPEOHdOMaqN9P0Mt/J+jVl2jQAc19AAAZVElEQVQ85TTq/uM2jIhIgv/yDIEfvIt97WqwWmm4PJ2G\ny+ZiOJ00nXIa+P3g84HPhz+++bYfi8eDLTsLS00Nlpoa8DZREhjGzrJhjA1qIP75p8HwN7/X76cm\nPBxf6kgCvvmKoBf/9+BBAcA3egz+wUMIfPdtAt9/t/l9hgGGQdPUafgiIgl+7s841q4Bvx+LYQAG\nlowsDIcD533zse/e9UM1XWGU7swDIOL8OViamlq2eUeNpvzrtVjKyoiaMbnlecNiofHs82j60SlY\nampwfPMlhtOF4QrDHxmJEdE8psM7cjQ1Cx7AcLkwbHYs3ia8Y8c178RqwdLUhGPl1wS99DeslRVU\nvvASjRdcRPCfn8K+NYOmE0/CO3lK83sc5s2kJX2DuqO7YBgGWzbs5O3lGeTYwrD5fcyM8nLBVWcQ\n7urZASfqxjFHQ5OPzWt3sG1jNiU1TVR6rVgTE7DbrQQW7CPYamAxDCwWKPPbyXeEtwy+Axjmq2Tc\noFBGTxvLyFEJHbZMDcNg29Y8Pv1gA981hbQMSEsbFsk5Jw9l7LDIbo+Ar2/08upzy1lRHYhhaf68\nNFsNcy6ZzrD4MFwhbUfTW3P2EH3bLzA2bqThokuwZ35HxXsfYbjCiDh3Ft7RY2k8/wIap58CoR3f\nH9qZj9Y132ZzzVkje22WrIPa/I4ZRnPge73N/x2og6WwEIvf98PzViv+ocPA58O2ZxeG04U/1Nn8\n+p7s5TAMLGVlGEFBEBpK4GsvE/jeOzg2rsdaWooRFETZyg34Bw8h1uuh2NbDn98Ba/4+LOXlWKsq\nsVRWgs9H4/kXABD4ztLmf6MDfwAZYeE0nn0uNDXhWLcGw+nE73Qd+OPEBcFtx1T0p3O/K7om3A29\necD3l9Xytw++bx48YfiZEVrPj386E3dM+/+YR0u/vH3Tv9fF7zfI2VfOtpUZbN1dynb/D7ehhTsD\nOG1MDAl2LxarBavNhuH3s7vORsbeigP3ScJQXyUTEp2cdOYkkrrTgu2Ap66JbZt38c1X37PF/0OX\nZ4S3ljGhPkaNGczgccNJcLsI3b6VqN8/TNl/PYIvdeQRf2ZnFr+0gZ35lTxx2yltFlToaf32d8ww\nsObswfHtBhouugR8PmLTUvCFR9Bwznk0XHQJ3pOmHF4gNzVh274NX8oICA4m+MkncKxZhXX/fqzl\nZVgqKyn7NhMjLJyoKROw5expeas/OprS73cDED0yCUtjE8aBLn9faioVy7/AUlhIzPjUVh/ZePos\nKt94G9vWTMLnpbcEsyMqgurT51D/sxuwbd9G4NtvYbjCMFwu/LFuvGnj8A9J6ol/ycPj92OprMBa\nUoK1tAS8XppOOQ1LVSUhjz+KpaEeGhux1NdTd/OteCeeqGvCZvps2WqWbPXQhJUThoVz6anDSezg\nFiM5vlitFpKHRJE89zTOpbklnbVtH5t3lrJydxXvrstv9302q4XJ8QGcc2oqw1M6X7S+u5zBDiZP\nG8XkaaPYXVDF+u1F7M/ex579sKrBxapNlbDpWwBiwoMY8dPf8SNbNGmG0eP3nZdV1ZO9r5LRSRG9\nHsD9msWCf1gyDcOSWx7z6afUv/4mge+/S8izf6bhgp9Q9cI/Wq5J+wcl/BDKfj9YrTg+/5TAZf+H\n/bst2LdtxdLYSMXbHzR3p3u9+OPi8U44AX90NEZYOIaj+ZhUvv4WRkAgRlgYhtMFth/GQJTu2Ntu\nkQ23m5Ls3JZr55bqKoyg5lawPzqGuptuabl27vDWYxxoIVsL9xPw8XIsnurmlndpKTW/XkjdHb8i\n+NlnCPnvx/G74/G73fjdcdRdfyPeSZOxr16FbfdOsNubu+x9PhrPOBMjKpqA5f/Ctmtnc2jW12Np\naKD27nswnC5CFv8G2949WBqbwNuEpbGRyteXAhCdmoS1uqqlTr5hyZSt3Yxhs2Pf/C0EBWEEBmIE\nBjX/Gx8jCuF2vPv61/zfnibCmur5xaWTmdzBnKsi0Dw94bjxSYwbn8RljT6+25BFbYUHw+/H8Bv4\n/X7iRiYxIiW+V6fsTB4U1jz5w+kjMAyDghIPO9dvpyCnkL1B0eyr9rI6Yz+rM/YzLN7FlbNTSW1n\nmb8jtWF78zzLk0d3vGiCtMNigUmTqB2SSu1/3odt+zas5WUABHz0IWH/cQN+pwsCA6CxiZr7H6T+\n+puw5ezBlr+PptNnUXvHXXjHTcB/INhrf3VPhx/nS0ntcFtnZTTCwjHC2g5ANeLiqPvFf7Q8Dol1\n0XBwop7TTqfik69+ePHBSwJA4+lnYoQ6sRbux1pUiLWwELzNs1kF/us9gpa8Ak1eLN4msFip+L/3\n8EZFE/j+MuxrVrWEJoFBUN8ATheW+vrmbvTgYIyAcIzQ0OaxDDYbVc+/iBHixIiJaf7DJPzA735o\nKJXv/Ovw/016iLqjD+H3Gyxb8jXLcry4m6r5z1vPJDrq2N0432+719qhuvRN1Y1+XvpgK+sPzDl8\n+gkJXDFrRI+M0l380gZ27qvkidtm9PqUiTCwjkuHdamtxb5tK7asHS0tYO+UqfiGjzj2heym4+K4\nHOG+2qOW8AE5+6v5+/sZ7Cn2EtvkYf4txzaARY6F4Ynh3PKTcWTnVfL3D7fxxaZ89uyv5s7LJ3Y6\nDWlXDnZFjxoScUwC+LgREoJ30mS8kyZ3/Vrpl477EC4squLd175kVV0oBjAjMYDLLzmbsFB9kcjA\nNWJwOAt/NoV/fLidb74rYPFLG/jPK0884ikm1RUtcmSO2xCua/Dy/qtfsLzAwGcNZWiQj8t/chJj\n/21FEJGBym6z8rPzRhPhCuC9lTn85Z0M7r1q0hFN/rFuexEWYPKow5/FS+R4dlyFsGEYlFc38NW6\nPXyxMpsqRwhuv4fLTh/JpOmjenwmJJG+zmKxcPGpwykqr2Pt90UsW7GbS047vLmSy6rqyc6rZKS6\nokUOW78O4dwiDw/896dYPNU4rX7inHYGxUcQMjQRhzOU6l25lO4rpqS6geIGC8WWIOptzde9Qm12\nLhlm56xLz281TaHI8cZisTDv7NHsyq/i/ZU5jEuOZuSQ7o+aXr21EIBpaT1z25XI8aRfh7DdZiHI\nalCCgwJLINtrrbDLC7tyDnlV8wL0wZZG4ow6IpOimTAmgelpvXu7iEh/EhJk58YL0/j9Sxt4+aMd\nPPyzKVitXfcMGYbBqoz92G0Wpuh6sMhh69chPCg6lD/99mKKi6vx+vwUl9dSuLeIGuw0YiXMbhAT\nG0ZMZAghgfYen5xAZCAZkRjOj8bFsyJjP998V8BpExO6fE9ukYd9JTWcNDKW0MNYtlNEmvXrED6U\n3WZlUIyTQTG6rUjkSF0yM4V124tY+tUupox2ExzY+VfEqsz9AExL04Q2IkfC3OV/RKRPiXQFct7J\nQ6mqaeSD1Tmdvtbn97N6ayEhgXYmpBz5/NcixzOFsIi0cvbJSUS6Alm+NpeSiroOX7cyYz+Vnkam\np8XjsOurRORI6MwRkVYCHTYuOz0Fr8/Pm1/ubPc1Xp+fd1fswW6zcO40E1bEERkgFMIi0sbJY+NI\nHhTG2u+L2JFb0Wb7iu8KKKmsZ+YJiUSF9ey62iLHE4WwiLRhtVi4cnYqFuB/3s6gtLK+ZVtVbSPv\nrtyDw27lvGlDzSukyACgEBaRdo1IDCf9zFQqaxr5739uZl9JDYVltfz+pQ2UVTVw9tQhRLo0Q5bI\n0RgwtyiJSM+bM2UIxZV1fLI+jwf/d03L8+dPH8rFpw43sWQiA4NCWEQ6lT4rlYSYUHbuq6S0sp6T\nx8Yx84REs4slMiAohEWkU1arhdNPSOR0Ba9Ij9M1YREREZN0K4QXL17M3LlzSU9PZ8uWLe2+5o9/\n/CPXXHNNjxZORERkIOsyhNeuXUtOTg5Llixh0aJFLFq0qM1rsrOzWbduXa8UUEREZKDqMoRXrVrF\n7NmzAUhJSaGyshKPx9PqNY888gh33XVX75RQRERkgOpyYFZJSQlpaWktj6OioiguLsbpbF6taOnS\npUydOpXExO4N2oiMDMFu79l1fGNjXT26PzOpLn2T6tI3qS59k+rSfYc9OtowjJafKyoqWLp0KS++\n+CKFhYXden95ee3hfmSnYmNdFBdX9+g+zaK69E2qS9+kuvRNqkvH+2pPl93RbrebkpKSlsdFRUXE\nxsYCsHr1asrKyrjqqqu47bbbyMzMZPHixT1SYBERkYGuyxCeMWMGy5cvByAzMxO3293SFX3OOefw\nwQcf8MYbb/D000+TlpbG/fff37slFhERGSC67I6eNGkSaWlppKenY7FYWLhwIUuXLsXlcjFnzpxj\nUUYREZEBqVvXhOfPn9/q8ejRo9u8ZvDgwbz00ks9UyoREZHjgGbMEhERMYlCWERExCQKYREREZMo\nhEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURETKIQ\nFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJY\nRETEJAphERERkyiERURETKIQFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmER\nERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURETKIQFhERMYlCWERExCQKYREREZMohEVE\nREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURETKIQFhER\nMYlCWERExCT27rxo8eLFbN68GYvFwv3338+ECRNatq1evZonnngCq9VKcnIyixYtwmpVtouIiHSl\ny7Rcu3YtOTk5LFmyhEWLFrFo0aJW2x966CGefPJJXn/9dWpqavj66697rbAiIiIDSZchvGrVKmbP\nng1ASkoKlZWVeDyelu1Lly4lPj4egKioKMrLy3upqCIiIgNLlyFcUlJCZGRky+OoqCiKi4tbHjud\nTgCKiopYsWIFM2fO7IViioiIDDzduiZ8KMMw2jxXWlrKzTffzMKFC1sFdnsiI0Ow222H+7Gdio11\n9ej+zKS69E2qS9+kuvRNqkv3dRnCbrebkpKSlsdFRUXExsa2PPZ4PPziF7/gzjvv5JRTTunyA8vL\na4+wqO2LjXVRXFzdo/s0i+rSN6kufZPq0jepLh3vqz1ddkfPmDGD5cuXA5CZmYnb7W7pggZ45JFH\nuPbaaznttNN6pKAiIiLHiy5bwpMmTSItLY309HQsFgsLFy5k6dKluFwuTjnlFN5++21ycnJ48803\nAfjxj3/M3Llze73gIiIi/V23rgnPnz+/1ePRo0e3/JyRkdGzJRIRETlOaFYNERERkyiERURETKIQ\nFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJY\nRETEJAphERERkyiERURETKIQFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmER\nERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURETKIQFhERMYlCWERExCQKYREREZMohEVE\nREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURETKIQFhER\nMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETE\nJAphERERkyiERURETKIQFhERMUm3Qnjx4sXMnTuX9PR0tmzZ0mrbypUrueyyy5g7dy7PPPNMrxRS\nRERkIOoyhNeuXUtOTg5Llixh0aJFLFq0qNX23/3udzz11FO89tprrFixguzs7F4rrIiIyEDSZQiv\n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\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fd0aaab6a58>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nW2vr/YSPmjp1GuvXr+Huu79HIBDge9+7E4Brr72BH/zgdgYM6M8tt8zit799lTvv/GGH1K77CXch\nakvXpLZ0TWpL16S2nHhbzVFPWEREepST3U/4kUf+y4KKTkwhLCIiPYruJywiIiItUgiLiIhYRCEs\nIiJiEYWwiIiIRRTCIiIiFlEIi4iIWEQhLCIiYhGFsIiIiEUUwiIiIhZRCIuIiFhEISwiImIRhbCI\niIhFFMIiIiIWUQiLiIhYRCEsIiJiEYWwiIiIRRTCIiIiFlEIi4iIWEQhLCIiYhGFsIiIiEUcrVlp\nwYIFZGZmYhgGc+fOZcSIEY3L3nnnHZYuXYrNZmPYsGH813/9V4cVKyIi0pO02BNevXo12dnZLFq0\niPnz5zN//vzGZZWVlfzmN7/hnXfeYeHChezevZuvvvqqQwsWERHpKVoM4RUrVjBt2jQA0tPTKSsr\no7KyEgCn04nT6aS6uhq/309NTQ1RUVEdW7GIiEgP0WIIFxYWEhMT0/g4NjaWgoICAEJCQrjnnnuY\nNm0aF154ISNHjiQtLa3jqhUREelBWnVM+FimaTb+u7KykldeeYV//vOfuN1ubr31VrZt28aQIUNO\n+PqYmHAcDvupVXsCXq+nXbdnJbWla1Jbuia1pWtSW1qvxRBOSEigsLCw8XF+fj5erxeA3bt306dP\nH2JjYwEYN24cmzdvPmkIl5RUn27NTXi9HgoKKtp1m1ZRW7omtaVrUlu6JrXlxNtqTovD0ZMmTWLZ\nsmUAZGVlkZCQgNvtBiA5OZndu3dTW1sLwObNm0lNTW2XgkVERHq6FnvCY8aMISMjgxkzZmAYBvPm\nzWPJkiV4PB6mT5/O7bffzqxZs7Db7YwePZpx48Z1Rt0iIiLdXquOCc+ePbvJ42OHm2fMmMGMGTPa\ntyoREZEzgGbMEhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQs\nohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGI\nQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERExCIK\nYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiE\nRURELKIQFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAW\nERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYs4WrPSggULyMzMxDAM5s6d\ny4gRIxqX5ebm8qMf/Yj6+nrOOussfvrTn3ZYsSIiIj1Jiz3h1atXk52dzaJFi5g/fz7z589vsvzp\np5/me9/7HosXL8Zut5OTk9NhxYqIiPQkLYbwihUrmDZtGgDp6emUlZVRWVkJQDAYZN26dUydOhWA\nefPm0bt37w4sV0REpOdocTi6sLCQjIyMxsexsbEUFBTgdrspLi4mIiKCp556iqysLMaNG8fDDz98\n0u3FxITjcNhPv/JjeL2edt2eldSWrklt6ZrUlq5JbWm9Vh0TPpZpmk3+nZeXx6xZs0hOTubOO+/k\nk08+4YILLjjh60tKqk+p0BPxej0UFFS06zatorZ0TWpL16S2dE1qy4m31ZwWh6MTEhIoLCxsfJyf\nn4/X6wUgJiaG3r1707dvX+x2OxMnTmTnzp3tUrCIiEhP12IIT5o0iWXLlgGQlZVFQkICbrcbAIfD\nQZ8+fdi3b1/j8rS0tI6rVkREpAdpcTh6zJgxZGRkMGPGDAzDYN68eSxZsgSPx8P06dOZO3cuc+bM\nwTRNBg0a1HiSloiIiJxcq44Jz549u8njIUOGNP67X79+LFy4sH2rEhEROQNoxiwRERGLKIRFREQs\nohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCzS5lsZioi0\n1tbsErL2FpNfUk2/Xh4undAPm2FYXZZIl6EQFpF2FwgG+csne/jn6v2Nz63dXkBRWS0zvzVYQSxy\nhEJYRNpVdW09Ly3ZxLb9pSTGhHHL9EHERYXyyl+z+OSrHGw2g5kXD7a6TJEuQceERaTdlFbW8fQ7\nG9i2v5TRA+N5/LbxDOsfR1JcBLNvHk2K181H6w+xIuuw1aWKdAkKYRFpF0VltTz19joOFlRy4ehk\n7rlmOGEhXw+2ucOc3HPtMEJcdt5atp38kmoLqxXpGhTCInLaispq+fnC9RSU1nLFuanMvHgQNtvx\nx30TY8L5zsWDqPUFeO3vWzBN04JqRboOhbCInJZan59n/7iBgtJarpqUyrWT+2Oc5MSrc4clMSI9\n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\n/fOvf/2L888/38oS2yQvL4+IiAhcLhemaXLbbbdRXl4OdK/9cqxzzz33uP0xcuRINm3aRHl5OVVV\nVaxfv55x48ZZXGnLli5ditPp5P777298bs+ePTz88MOYponf72f9+vXdYj8195nvrvsFYNOmTQwZ\nMqTx8cqVK3nqqacAqK6uZtu2baSlpVlV3nGa+x7u7M9Ktx2OHjNmDBkZGcyYMaNxOs3u5P3336ek\npIQHH3yw8blrr72WBx98kLCwMMLDwxv/eLu6qVOnMnv2bD788EPq6+t54oknGDp0KI8++iiLFi2i\nd+/eXH311VaX2WrH3qLTMAxuvPFGbrvtNsLCwkhMTOS+++6zuMKT27x5M8888wyHDh3C4XCwbNky\nnnvuOebMmdNkfzidTh5++GFuv/12DMPgnnvuwePpWne/aa4tRUVFhISE8J3vfAdoODHziSeeoFev\nXlx//fXYbDamTp3a5U4Maq4tM2fOPO4zHxoa2i33y4svvkhBQUHjqBHAuHHjePfdd7npppsIBALc\neeedJCYmWlh5U819Dz/99NM89thjnfZZ0bSVIiIiFum2w9EiIiLdnUJYRETEIgphERERiyiERURE\nLKIQFhERsYhCWERExCIKYREREYsohEVERCzy/wHMshS+2NDqEQAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fd0aabb4f98>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "aj7vBRZ_hu7q",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "pred_yp = my_model_NN.predict(test_xp[25:26,:,:])"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "DU8X0FMPh1nx",
        "colab_type": "code",
        "outputId": "23a9468c-3665-40ac-b43c-cdf7de120ede",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1019
        }
      },
      "cell_type": "code",
      "source": [
        "start_index = 26\n",
        "# plot history\n",
        "x_plot = np.append(test_yp[start_index][:,0], pred_yp[0][:,0])\n",
        "pyplot.plot(x_plot, label='X_pred', color='red', linestyle='dashed', linewidth=1.3)\n",
        "test_yp_x = np.append(test_yp[start_index][:,0], test_yp[start_index+100][:,0])\n",
        "pyplot.plot(test_yp_x, label='X_real')\n",
        "pyplot.ylim(0.2,0.6)\n",
        "pyplot.legend()\n",
        "pyplot.show()\n",
        "\n",
        "y_plot = np.append(test_yp[start_index][:,1], pred_yp[0][:,1])\n",
        "pyplot.plot(y_plot, label='Y_pred', color='red', linestyle='dashed', linewidth=1.3)\n",
        "test_yp_y = np.append(test_yp[start_index][:,1], test_yp[start_index+100][:,1])\n",
        "pyplot.plot(test_yp_y, label='Y_real')\n",
        "pyplot.ylim(0.0,1.0)\n",
        "pyplot.legend()\n",
        "pyplot.show()\n",
        "\n",
        "z_plot = np.append(test_yp[start_index][:,2], pred_yp[0][:,2])\n",
        "pyplot.plot(z_plot, label='Z_pred', color='red', linestyle='dashed', linewidth=1.3)\n",
        "test_yp_z = np.append(test_yp[start_index][:,2], test_yp[start_index+100][:,2])\n",
        "pyplot.plot(test_yp_z, label='Z_real')\n",
        "pyplot.ylim(0.0,1.0)\n",
        "pyplot.legend()\n",
        "pyplot.show()\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nRK5CYII=\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fd0c59dac88>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nNpa5c3/CNdds5uyzz8Pn8/H88892y+/X/YR7ELWlZ1Jbeia1pWdSW9rfVlvUExYRkT7nUPcTHjt2\nvAUVtU0hLCIifc6h7ifck+jELBEREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAW\nERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhE\nRMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIo7OrLRw4ULWr1+PYRjcd999jB8/vmXZyy+/zOuv\nv47NZmPs2LH89Kc/7bZiRURE+pIOe8KrVq0iPz+fxYsXs2DBAhYsWNCyrK6ujueee46XX36ZRYsW\nsWPHDtatW9etBYuIiPQVHYbwihUrmDlzJgDDhw+nurqauro6AJxOJ06nE7/fTygUoqGhgfj4+O6t\nWEREpI/oMITLyspITExseZyUlERpaSkAUVFR3HzzzcycOZMzzzyT448/nqFDh3ZftSIiIn1Ip44J\nH8g0zZaf6+rqeOaZZ3j77bfxeDxcc801bNmyhczMzHZfn5joxuGwH1m17UhN9Xbp9qyktvRMakvP\npLb0TGpL53UYwj6fj7KyspbHJSUlpKamArBjxw4GDhxIUlISAJMmTSInJ+eQIVxZ6T/amltJTfVS\nWlrbpdu0itrSM6ktPZPa0jOpLe1vqy0dDkdPmzaNZcuWAZCbm4vP58Pj8QAwYMAAduzYQWNjIwA5\nOTkMGTKkSwoWERHp6zrsCU+cOJGsrCyys7MxDIN58+axdOlSvF4vs2bN4vrrr2fOnDnY7XYmTJjA\npEmTjkXdIiIivV6njgnfddddrR4fONycnZ1NdnZ211YlIiLyDaAZs0RERCyiEBYREbGIQlhERMQi\nCmERERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYso\nhEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQ\nFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJY\nRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmGR\n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\nGx9+sZefPruy+Umnl+8MtnNeto4Fi8jBFMIiXcQwDL43axQZPg+71myhoqSaqZOGMO3siVaXJiI9\nlEJYpAvZbAZnThjAmRMGWF2KiPQCOiYsIiJikU6F8MKFC7nyyivJzs5mw4YNba7z61//mquvvrpL\nixMREenLOgzhVatWkZ+fz+LFi1mwYAELFiw4aJ28vDxWr17dLQWKiIj0VR2G8IoVK5g5cyYAw4cP\np7q6mrq6ulbrPPzww9xxxx3dU6GIiEgf1eGJWWVlZWRlZbU8TkpKorS0FI/HA8DSpUuZMmUKAwZ0\n7kSUxEQ3Dof9CMttW2qqt0u3ZyW1pWdSW3omtaVnUls677DPjjYPuIF5VVUVS5cu5fnnn6e4uLhT\nr6+sbH+S+yORmuqltLS2S7dpFbWlZ1Jbeia1pWdSW9rfVls6HI72+XyUlZW1PC4pKSE1NRWAzz77\njIqKCr73ve9xyy23kJuby8KFC7ukYBERkb6uwxCeNm0ay5YtAyA3Nxefz9cyFP2tb32LN998k7/+\n9a88+eSTZGVlcd9993VvxSIiIn1Eh8PREydOJCsri+zsbAzDYN68eSxduhSv18usWbOORY0iIiJ9\nUqeOCd91112tHmdmZh60TkZGBi+++GLXVCUiIvINoBmzRERELKIQFhERsYhCWERExCIKYREREYso\nhEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQ\nFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJY\nRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmER\nERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVE\nRCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhER\nsYijMystXLiQ9evXYxgG9913H+PHj29Z9tlnn/Gb3/wGm83G0KFDWbBgATabsl1ERKQjHablqlWr\nyM/PZ/HixSxYsIAFCxa0Wv7AAw/w+OOP88orr1BfX8/HH3/cbcWKiIj0JR2G8IoVK5g5cyYAw4cP\n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\nImKR/w+cRdqoqmthKQAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fd0ab22a438>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\naFYNERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGL\nKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCyi\nEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhC\nWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgph\nERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRF\nREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsUirQnjmzJlMmjSJyZMns3LlyibLvv76\nay699FImTZrEs88+2yFFioiI9EQthvCiRYsoKChg1qxZzJgxgxkzZjRZ/uCDD/L000/z1ltvMW/e\nPDZt2tRhxYqIiPQkLYbw/PnzmTBhAgC5ublUVlbi8/kAKCwsJCEhgczMTGw2G6eddhrz58/v2IpF\nRER6iBZD2Ov1kpSU1Pg4OTmZkpISAEpKSkhOTm52mYiIiByao61vME3ziD4wLS3uiN7fWeu0itrS\nNaktXZPa0jWpLa3XYk84PT0dr9fb+Li4uJi0tLRmlxUVFZGent4BZYqIiPQ8LYbwuHHjmDNnDgD5\n+fmkp6fj8XgA6NOnDz6fjx07dhAMBpk7dy7jxo3r2IpFRER6CMNsxfjy448/zjfffINhGEyfPp01\na9YQFxfHxIkTWbx4MY8//jgAZ511Ftdff32HFy0iItITtCqERUREpP1pxiwRERGLKIRFREQs0uZL\nlLqSmTNnsmLFCgzDYNq0aYwYMcLqktrk0UcfZcmSJQSDQW666SY+//xz8vPzSUxMBOD666/n9NNP\nt7bIVli4cCF33HEHAwcOBGDQoEHccMMN3H333YRCIdLS0njsscdwuVwWV9qyf/zjH7z33nuNj1ev\nXs2wYcOora3F7XYDcM899zBs2DCrSmyVDRs2cMstt3Dttddy9dVXs3v37ma3x3vvvcdf/vIXbDYb\nl19+OZdddpnVpR+gubb85je/IRgM4nA4eOyxx0hLSyMvL4+RI0c2vu/VV1/FbrdbWPmBvtuWqVOn\nNrvPd8ftcvvtt1NeXg5ARUUFxx57LDfddBPnn39+4/6SlJTEU089ZWXZB/ju9/Dw4cM7d18xu6mF\nCxeaN954o2maprlp0ybz8ssvt7iitpk/f755ww03mKZpmmVlZeZpp51m3nPPPebnn39ucWVtt2DB\nAvMXv/hFk+emTp1qfvDBB6ZpmuYTTzxhvvnmm1aUdkQWLlxo3n///ebVV19trl+/3upyWq2mpsa8\n+uqrzXvvvdd8/fXXTdNsfnvU1NSYZ511lllVVWXW1dWZ5513nlleXm5l6Qdori133323+f7775um\naZpvvPGG+cgjj5imaZpjxoyxrM7WaK4tze3z3XW77G/q1KnmihUrzMLCQvNHP/qRBRW2TnPfw529\nr3Tb4ehDTafZHYwePZonn3wSgPj4eOrq6giFQhZX1X4WLlzImWeeCcAZZ5zRLaczffbZZ7nlllus\nLqPNXC4XL774YpNr9pvbHitWrGD48OHExcURHR3NyJEjWbp0qVVlN6u5tkyfPp0f/OAHQKRnVVFR\nYVV5bdJcW5rTXbfLPlu2bKG6urpbjEw29z3c2ftKtw3hQ02n2R3Y7fbG4c23336bU089Fbvdzhtv\nvME111zDnXfeSVlZmcVVtt6mTZu4+eabueKKK5g3bx51dXWNw88pKSndatsArFy5kszMzMaJaZ56\n6imuuuoq7rvvPurr6y2u7tAcDgfR0dFNnmtue3i93i4/7WxzbXG73djtdkKhEH/96185//zzAfD7\n/dx1111MnjyZV155xYpyD6m5tgAH7PPddbvs89prr3H11Vc3PvZ6vdx+++1Mnjy5yaGerqC57+HO\n3le69THh/Znd9EqrTz/9lLfffps///nPrF69msTERIYMGcKf/vQnnnnmGe677z6rS2xR//79ue22\n2zjnnHMoLCzkmmuuadKr747b5u233+ZHP/oRANdccw1HH3002dnZTJ8+nTfffLNbXw9/sO3RnbZT\nKBTi7rvv5sQTT2Ts2LEA3H333VxwwQUYhsHVV1/NqFGjGD58uMWVHtqFF154wD5/3HHHNXlNd9ou\nfr+fJUuWcP/99wOQmJjIHXfcwQUXXEB1dTWXXXYZJ554YpebWXH/7+Gzzjqr8fnO2Fe6bU/4UNNp\ndhdffvklzz//PC+++CJxcXGMHTuWIUOGADB+/Hg2bNhgcYWtk5GRwbnnnothGGRnZ5OamkplZWVj\nj7E7Tme6cOHCxi/DiRMnkp2dDXSv7bI/t9t9wPZobh/qLtvpN7/5Df369eO2225rfO6KK64gNjYW\nt9vNiSee2C22U3P7fHfeLosXL24yDO3xeLjkkktwOp0kJyczbNgwtmzZYmGFB/ru93Bn7yvdNoQP\nNZ1md1BdXc2jjz7KCy+80Hhm5C9+8QsKCwuBSAjsO9u4q3vvvfd4+eWXgcidtUpLS7n44osbt8/H\nH3/MKaecYmWJbVJUVERsbCwulwvTNLn22mupqqoCutd22d9JJ510wPY45phjWLVqFVVVVdTU1LB0\n6VJGjRplcaUte++993A6ndx+++2Nz23ZsoW77roL0zQJBoMsXbq0W2yn5vb57rpdAFatWsXgwYMb\nHy9YsICHHnoIgNraWtatW0dOTo5V5R2gue/hzt5Xuu1w9MiRI8nLy2Py5MmN02l2Jx988AHl5eX8\n8pe/bHzu4osv5pe//CUxMTG43e7Gf7xd3fjx45kyZQqfffYZgUCA+++/nyFDhnDPPfcwa9Ysevfu\nzUUXXWR1ma22/y06DcPg8ssv59prryUmJoaMjAx+8YtfWFzhoa1evZpHHnmEnTt34nA4mDNnDo8/\n/jhTp05tsj2cTid33XUX119/PYZhcOuttxIX17XuftNcW0pLS4mKiuLHP/4xEDkx8/7776dXr15c\neuml2Gw2xo8f3+VODGquLVdfffUB+3x0dHS33C5PP/00JSUljaNGAKNGjeLdd99l0qRJhEIhbrzx\nRjIyMiysvKnmvocffvhh7r333k7bVzRtpYiIiEW67XC0iIhId6cQFhERsYhCWERExCIKYREREYso\nhEVERCyiEBYREbGIQlhERMQiCmERERGL/H//gO1gfH/oaQAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fd0ab1b0fd0>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "IVfpqCYQnn8N",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## 8.5. Predicting  in base of a moving windowq including 100 measurements"
      ]
    },
    {
      "metadata": {
        "colab_type": "code",
        "outputId": "ee5eacd5-566e-4f73-ebb4-2229679d1115",
        "id": "y9T7rHYPJpJg",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1951
        }
      },
      "cell_type": "code",
      "source": [
        "# Predicting  in base of a moving windowq including 100 measurements\n",
        "\n",
        "from math import sqrt\n",
        "from sklearn.metrics import mean_squared_error\n",
        "\n",
        "moving_y_pred = []\n",
        "number_steps =  100\n",
        "starting_step = 145\n",
        "\n",
        "# first window:\n",
        "pred_x = test_xp[number_steps:number_steps+1,:,:]\n",
        "\n",
        "for i in range(number_steps):\n",
        "  #prediction input:\n",
        "  pred_y = my_model_NN.predict(pred_x)\n",
        "  print(str(i)+\"/\"+str(number_steps)+\": \" + str(pred_y[0]))\n",
        "  pred_x = np.append(pred_x, pred_y[0].reshape(1,1,3), axis=1)\n",
        "  pred_x = np.delete(pred_x,0,1)\n",
        "  moving_y_pred.append(list(pred_y[0]))\n",
        "\n",
        "  \n",
        "pd_moving_y_pred = pd.DataFrame(moving_y_pred)\n",
        "pd_moving_y_pred.columns = (\"X\",\"Y\",\"Z\")\n",
        "\n",
        "print(pd_moving_y_pred.head())\n",
        "print(pd_moving_y_pred.tail())"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0/100: [0.48562145 0.46946666 0.48614663]\n",
            "1/100: [0.48538733 0.46915314 0.48598567]\n",
            "2/100: [0.4849972  0.46874848 0.48576677]\n",
            "3/100: [0.48456168 0.46832237 0.48551938]\n",
            "4/100: [0.48413396 0.46790835 0.48526162]\n",
            "5/100: [0.48373726 0.46752182 0.48500454]\n",
            "6/100: [0.48337972 0.46716794 0.48475495]\n",
            "7/100: [0.4830621  0.46684715 0.48451665]\n",
            "8/100: [0.48278186 0.46655735 0.48429164]\n",
            "9/100: [0.48253524 0.4662957  0.48408082]\n",
            "10/100: [0.48231825 0.46605906 0.4838843 ]\n",
            "11/100: [0.48212707 0.46584454 0.48370185]\n",
            "12/100: [0.48195836 0.46564957 0.48353282]\n",
            "13/100: [0.48180908 0.46547183 0.48337644]\n",
            "14/100: [0.48167673 0.46530938 0.48323205]\n",
            "15/100: [0.4815591  0.46516064 0.48309883]\n",
            "16/100: [0.48145425 0.4650242  0.48297593]\n",
            "17/100: [0.48136058 0.46489877 0.4828626 ]\n",
            "18/100: [0.4812768  0.4647834  0.48275813]\n",
            "19/100: [0.4812017  0.46467713 0.48266187]\n",
            "20/100: [0.48113427 0.46457922 0.48257318]\n",
            "21/100: [0.48107356 0.46448895 0.4824915 ]\n",
            "22/100: [0.48101884 0.46440563 0.48241615]\n",
            "23/100: [0.48096952 0.46432877 0.48234677]\n",
            "24/100: [0.48092493 0.4642578  0.48228288]\n",
            "25/100: [0.48088467 0.4641923  0.482224  ]\n",
            "26/100: [0.48084816 0.4641319  0.48216975]\n",
            "27/100: [0.48081508 0.46407607 0.48211977]\n",
            "28/100: [0.48078513 0.46402457 0.48207372]\n",
            "29/100: [0.4807579  0.463977   0.48203132]\n",
            "30/100: [0.48073316 0.46393314 0.48199227]\n",
            "31/100: [0.48071063 0.46389267 0.48195627]\n",
            "32/100: [0.48069018 0.46385524 0.48192307]\n",
            "33/100: [0.48067153 0.46382073 0.48189256]\n",
            "34/100: [0.48065448 0.46378887 0.4818644 ]\n",
            "35/100: [0.480639   0.4637595  0.48183843]\n",
            "36/100: [0.4806249  0.4637324  0.48181456]\n",
            "37/100: [0.480612   0.46370736 0.48179254]\n",
            "38/100: [0.48060024 0.4636843  0.48177227]\n",
            "39/100: [0.48058945 0.46366304 0.4817536 ]\n",
            "40/100: [0.48057967 0.46364346 0.4817364 ]\n",
            "41/100: [0.48057064 0.46362528 0.4817205 ]\n",
            "42/100: [0.48056248 0.46360862 0.48170593]\n",
            "43/100: [0.48055494 0.4635932  0.48169246]\n",
            "44/100: [0.48054802 0.46357903 0.4816801 ]\n",
            "45/100: [0.48054177 0.46356595 0.48166865]\n",
            "46/100: [0.48053595 0.46355388 0.48165813]\n",
            "47/100: [0.48053068 0.46354276 0.48164847]\n",
            "48/100: [0.48052582 0.46353254 0.48163953]\n",
            "49/100: [0.48052138 0.4635231  0.4816313 ]\n",
            "50/100: [0.48051733 0.46351436 0.4816237 ]\n",
            "51/100: [0.48051357 0.46350637 0.48161677]\n",
            "52/100: [0.48051015 0.46349895 0.48161033]\n",
            "53/100: [0.48050696 0.46349213 0.48160443]\n",
            "54/100: [0.48050413 0.46348584 0.481599  ]\n",
            "55/100: [0.48050147 0.46348006 0.48159397]\n",
            "56/100: [0.48049903 0.46347472 0.48158935]\n",
            "57/100: [0.4804968  0.46346977 0.48158506]\n",
            "58/100: [0.48049474 0.46346524 0.48158115]\n",
            "59/100: [0.4804929  0.46346107 0.48157755]\n",
            "60/100: [0.4804911 0.4634572 0.4815742]\n",
            "61/100: [0.48048955 0.46345362 0.48157108]\n",
            "62/100: [0.48048806 0.46345037 0.4815683 ]\n",
            "63/100: [0.48048672 0.46344736 0.48156568]\n",
            "64/100: [0.4804855  0.46344462 0.4815633 ]\n",
            "65/100: [0.48048437 0.46344203 0.4815611 ]\n",
            "66/100: [0.48048332 0.4634397  0.48155904]\n",
            "67/100: [0.48048237 0.46343753 0.4815572 ]\n",
            "68/100: [0.48048148 0.4634355  0.48155543]\n",
            "69/100: [0.48048067 0.46343365 0.48155385]\n",
            "70/100: [0.4804799  0.46343198 0.4815524 ]\n",
            "71/100: [0.48047924 0.46343046 0.48155108]\n",
            "72/100: [0.48047858 0.46342897 0.48154977]\n",
            "73/100: [0.480478   0.46342766 0.48154864]\n",
            "74/100: [0.48047745 0.46342644 0.4815476 ]\n",
            "75/100: [0.48047698 0.4634253  0.4815466 ]\n",
            "76/100: [0.4804765  0.46342427 0.48154572]\n",
            "77/100: [0.48047608 0.46342328 0.4815449 ]\n",
            "78/100: [0.48047572 0.46342245 0.48154414]\n",
            "79/100: [0.48047534 0.4634216  0.48154345]\n",
            "80/100: [0.480475  0.4634209 0.4815428]\n",
            "81/100: [0.4804747  0.46342015 0.48154223]\n",
            "82/100: [0.48047447 0.46341953 0.48154166]\n",
            "83/100: [0.48047423 0.46341893 0.48154113]\n",
            "84/100: [0.480474   0.4634184  0.48154068]\n",
            "85/100: [0.48047376 0.4634179  0.48154026]\n",
            "86/100: [0.48047358 0.46341747 0.48153988]\n",
            "87/100: [0.48047334 0.46341705 0.48153952]\n",
            "88/100: [0.48047322 0.46341667 0.48153916]\n",
            "89/100: [0.480473   0.46341625 0.48153883]\n",
            "90/100: [0.48047286 0.46341595 0.48153856]\n",
            "91/100: [0.48047274 0.46341565 0.48153833]\n",
            "92/100: [0.48047262 0.46341535 0.4815381 ]\n",
            "93/100: [0.48047253 0.46341512 0.48153785]\n",
            "94/100: [0.48047242 0.46341488 0.4815376 ]\n",
            "95/100: [0.48047233 0.4634146  0.48153743]\n",
            "96/100: [0.4804722  0.46341443 0.48153725]\n",
            "97/100: [0.48047215 0.46341428 0.48153707]\n",
            "98/100: [0.48047206 0.46341407 0.48153695]\n",
            "99/100: [0.480472   0.46341392 0.48153684]\n",
            "          X         Y         Z\n",
            "0  0.485621  0.469467  0.486147\n",
            "1  0.485387  0.469153  0.485986\n",
            "2  0.484997  0.468748  0.485767\n",
            "3  0.484562  0.468322  0.485519\n",
            "4  0.484134  0.467908  0.485262\n",
            "           X         Y         Z\n",
            "95  0.480472  0.463415  0.481537\n",
            "96  0.480472  0.463414  0.481537\n",
            "97  0.480472  0.463414  0.481537\n",
            "98  0.480472  0.463414  0.481537\n",
            "99  0.480472  0.463414  0.481537\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "iifQYiN1V6yU",
        "colab_type": "code",
        "outputId": "0ab5b407-6301-446c-b35f-c9d4cf671ce1",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1019
        }
      },
      "cell_type": "code",
      "source": [
        "# plot history\n",
        "x_plot = np.append(test_yp[0:starting_step,0], pd_moving_y_pred.X[:])\n",
        "pyplot.plot(x_plot, label='X_pred', color='red', linestyle='dashed', linewidth=1.3)\n",
        "pyplot.plot(test_yp[0:starting_step+number_steps,0], label='X_real')\n",
        "pyplot.ylim(0.0,1.0)\n",
        "pyplot.legend()\n",
        "pyplot.show()\n",
        "\n",
        "y_plot = np.append(test_yp[0:starting_step,1], pd_moving_y_pred.Y[:])\n",
        "pyplot.plot(y_plot, label='Y_pred', color='red', linestyle='dashed', linewidth=1.3)\n",
        "pyplot.plot(test_yp[0:starting_step+number_steps,1], label='Y_real')\n",
        "pyplot.ylim(0.0,1.0)\n",
        "pyplot.legend()\n",
        "pyplot.show()\n",
        "\n",
        "z_plot = np.append(test_yp[0:starting_step,2], pd_moving_y_pred.Z[:])\n",
        "pyplot.plot(z_plot, label='Z_pred', color='red', linestyle='dashed', linewidth=1.3)\n",
        "pyplot.plot(test_yp[0:starting_step+number_steps,2], label='Z_real')\n",
        "pyplot.ylim(0.0,1.0)\n",
        "pyplot.legend()\n",
        "pyplot.show()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAAFOCAYAAACxAKU1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xl8VPW9//HXLJkkk5nsk4QEwo7I\nKhQXREQtWGu19lor2Fq9t1rr9dKf7a33Sq1Kf63gUu29Vr23am3rVau0ll/rbVW0LlSRTVYTQAhL\n2LJNlkkms8+c3x8DgUggASYcEt7Px8MHmTlnznzz8WTe8/2e7znHYhiGgYiIiJxyVrMbICIicqZS\nCIuIiJhEISwiImIShbCIiIhJFMIiIiImUQiLiIiYpEchvHXrVmbOnMmLL754xLKPPvqI6667jtmz\nZ/PUU0+lvIEiIiL9VbchHAgE+OlPf8rUqVO7XP7AAw/wxBNP8PLLL7Ns2TKqqqpS3kgREZH+qNsQ\ndjgcPPvssxQVFR2xbM+ePeTk5DBgwACsViszZsxg+fLlvdJQERGR/qbbELbb7WRkZHS5rKGhgfz8\n/I7H+fn5NDQ0pK51IiIi/dgpn5gVi8VP9VuKiIicluwn8+KioiK8Xm/H47q6ui6HrQ/X3Bw4mbc8\ngsfjpqGhLaXbPJOpnqmjWqaOapk6qmXqHE8tPR53l8+fVE944MCB+P1+9u7dSywW47333mPatGkn\ns0kREZEzRrc94YqKCh5++GH27duH3W5nyZIlXHbZZQwcOJBZs2bx4x//mB/84AcAXHnllQwdOrTX\nGy0iItIfWE71rQxTPQyioZXUUj1TR7VMHdUydVTL1DF9OFpEREROnEJYRETEJAphERERkyiERURE\nTKIQFhGRPm316pXMnXtbx+OGhnpuuOFa2tv9vfaef/zjIp544omT3o5CWERE+rRzzz2f4uIS3njj\nLwA8+eR/cNttd5CV5TK5Zd07qStmiYiInA6++91/Ze7cb5OV5SIQCHDppTO7XK+mZj/33TePQYPK\n2bNnN6NHj+Guu+axYMGPsdvTaG1t4Sc/eYhHHlnA/v37iMVi3Hrr7Xzuc+fy8cer+MUvHiM/v4CC\ngkJGjhx20u1WCIuISMpYmhqxNjd1ei5ePABcLix1dVj9rZ2XlQ2CjAys+/dhCXa+rHF88FCw9yym\ncnNzmTPnG8yf/0NeeunVY65bVbWVBQseoaiomG9/+2a2bdsKQHZ2Nnff/SPefPOvFBQU8sMf3k9L\nSwt33nk7zz//Ck8//ST33fdTRo4cxV13/Z8etas7CmEREUmZzF89TdajD3V6zvf8y0S++CWyHvop\nmS/9T6dlzW8vJTZxEu7vz8Xx3judlnkrqjC6uR/B4aqqtlFSMoAtWzZTWlp21PUGDSqnuLgEgDFj\nxrJ7d3XHzwAVFRvZsGEdGzeuByAcDhONRqmpqWHkyFEAnHPO5B6361gUwiIikjLBW79D+Ktf6/Rc\nvHgAAO3z7iM4987Oy8oGAdD2H08e0RM2DrtVbnc2bapg584dPPHE03zve3dwwQUX4nQ6u1z38AtF\nGgZYLBYA7Pa0jn9vuulbzJp1RafXWa3Wz2zD0uP2HY0mZomISMoY+QXEh4/s9B+u5AQpo7j4yGUH\n7lefKC07clkPh6JjsRiPPfYwd955F4WFHq688ss899zTR11/3769eL1eEokEmzZVMGRI53sejBkz\njg8/XApAc3MTTz/9FACFhR52796FYRisW7fmuGvTFfWERUSkT3vllRc555zJDBs2HIDrr7+BW265\nke3bqxg+fMQR65eXD+aZZ55i584djB8/oeN1B1122UzWrl3N7bd/i3g8zre+lTz96bbb7uDee++m\npGQARUXFKWm7buAgnaieqaNapo5qmTpnei1ravZz771389xzL5z0tlJxAwf1hEVEpN/5858X8/bb\nbx7x/O23zzWhNUenEBYRkX7nmmuu5Zprru1yWSp6wamiiVkiIiImUQiLiIiYRCEsIiJiEoWwiIiI\nSRTCIiIiJlEIi4hIn3aq7ic8d+5t7NhRldJtKoRFRKRP0/2ERUTkjPf7d6tYvaU+pds8d3QR1192\n5KUnP+t47if8k5/cR2amk69+9XpcLhdPP/0UdrudoqJi7r77XiwWCwsW/JiGhnqCwSDf+tZtTJs2\nPaW/10EKYRER6fOO537C27Z9yh//+BdycnL5p3/6Oo8//t9kZ+fwX//1OO+99zfOPfd8zjvvAr74\nxavYt28v9903TyEsIiKnt+svG9GjXmtv6en9hMvKBpKTk0tTUyN79+7hnnv+DYBQKEROTi5udzab\nN1fy2muLsVistLb6eq3NCmEREenzjud+woffN7iw0MOTTz7Tafkbb/yF1tZWnnrqV7S2tnLrrd/s\n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\nU1MT3/jGN5g7dy6VlZUsXLiwRw0SERE503UbwtOmTWPJkiUAVFZWUlRU1DEUfcUVV/D666/z+9//\nnieffJKxY8dyzz339G6LRURE+oluh6MnT57M2LFjmTNnDhaLhfnz57N48WLcbjezZs06FW0UERHp\nlyzG4Qd5T4FUH4vQ8Y3UUj1TR7VMHdUydVTL1Dklx4RFRESkdyiERURETKIQFhERMYlCWERExCQK\nYREREZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiE\nRURETKIQFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAW\nERExiUJYRETEJAphERERkyiERURETKIQFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhE\nRMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURETKIQFhERMYlCWERExCQKYRER\nEZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURE\nTGLvyUoLFy5kw4YNWCwW7rnnHiZMmNCxbMWKFfz85z/HarUydOhQFixYgNWqbBcREelOt2m5atUq\nqqurWbRoEQsWLGDBggWdlt9///384he/4JVXXqG9vZ0PPvig1xorIiLSn3QbwsuXL2fmzJkADB8+\nHJ/Ph9/v71i+ePFiSkpKAMjPz6e5ubmXmioiItK/dBvCXq+XvLy8jsf5+fk0NDR0PHa5XADU19ez\nbNkyZsyY0QvNFBER6X96dEz4cIZhHPFcY2Mjt99+O/Pnz+8U2F3Jy3Nit9uO922PyeNxp3R7ZzrV\nM3VUy9RRLVNHtUydk61ltyFcVFSE1+vteFxfX4/H4+l47Pf7+fa3v833vvc9Lrroom7fsLk5cIJN\n7ZrH46ahoS2l2zyTqZ6po1qmjmqZOqpl6hxPLY8W1t0OR0+bNo0lS5YAUFlZSVFRUccQNMBDDz3E\nzTffzMUXX9yjhoiIiEhStz3hyZMnM3bsWObMmYPFYmH+/PksXrwYt9vNRRddxJ/+9Ceqq6t59dVX\nAbjqqquYPXt2rzdcRESkr+vRMeG77rqr0+PRo0d3/FxRUZHaFomIiJwhdFUNERERkyiERURETKIQ\nFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJY\nRETEJAphERERkyiERURETKIQFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmER\nERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURETKIQFhERMYlCWERExCQKYREREZMohEVE\nREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURETKIQFhER\nMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETE\nJAphERERkyiERURETKIQFhERMUmPQnjhwoXMnj2bOXPmsHHjxk7LPvroI6677jpmz57NU0891SuN\nFBER6Y+6DeFVq1ZRXV3NokWLWLBgAQsWLOi0/IEHHuCJJ57g5ZdfZtmyZVRVVfVaY0VERPqTbkN4\n+fLlzJw5E4Dhw4fj8/nw+/0A7Nmzh5ycHAYMGIDVamXGjBksX768d1ssIiLST3Qbwl6vl7y8vI7H\n+fn5NDQ0ANDQ0EB+fn6Xy0REROTY7Mf7AsMwTuoNPR73Sb3+VG3zTKZ6po5qmTqqZeqolqlzsrXs\ntidcVFSE1+vteFxfX4/H4+lyWV1dHUVFRSfVIBERkTNFtyE8bdo0lixZAkBlZSVFRUW4XC4ABg4c\niN/vZ+/evcRiMd577z2mTZvWuy0WERHpJyxGD8aXH330UT7++GMsFgvz589n06ZNuN1uZs2axerV\nq3n00UcBuPzyy7nlllt6vdEiIiL9QY9CWERERFJPV8wSERExiUJYRETEJMd9itLpZOHChWzYsAGL\nxcI999zDhAkTzG5Sn7Fy5UruvPNORo4cCcCoUaO49dZb+fd//3fi8Tgej4ef/exnOBwOk1t6etu6\ndSt33HEH//iP/8iNN95ITU1NlzV87bXXeP7557FarVx//fV87WtfM7vpp53P1nLevHlUVlaSm5sL\nwC233MIll1yiWvbAI488wpo1a4jFYnznO99h/Pjx2i9P0Gdr+e6776Z2vzT6qJUrVxq33XabYRiG\nUVVVZVx//fUmt6hvWbFihfHd736303Pz5s0zXn/9dcMwDOOxxx4zXnrpJTOa1me0t7cbN954o3Hv\nvfcaL7zwgmEYXdewvb3duPzyy43W1lYjGAwaX/rSl4zm5mYzm37a6aqWd999t/Huu+8esZ5qeWzL\nly83br31VsMwDKOpqcmYMWOG9ssT1FUtU71f9tnh6GNdTlNOzMqVK/n85z8PwKWXXqpLkHbD4XDw\n7LPPdjo3vqsabtiwgfHjx+N2u8nIyGDy5MmsXbvWrGaflrqqZVdUy+6de+65PP744wBkZ2cTDAa1\nX56grmoZj8ePWO9katlnQ/hYl9OUnqmqquL222/nhhtuYNmyZQSDwY7h54KCAtWzG3a7nYyMjE7P\ndVVDr9ery7t2o6taArz44ovcdNNNfP/736epqUm17AGbzYbT6QTg1Vdf5eKLL9Z+eYK6qqXNZkvp\nftmnjwkfztCZVsdlyJAhzJ07ly9+8Yvs2bOHm266qdM3PNXz5B2thqptz1xzzTXk5uZy9tln88wz\nz/Dkk08yadKkTuuolkf3t7/9jVdffZVf//rXXH755R3Pa788fofXsqKiIqX7ZZ/tCR/rcprSveLi\nYq688kosFgvl5eUUFhbi8/kIhUKALkF6opxO5xE17GpfVW27N3XqVM4++2wALrvsMrZu3apa9tAH\nH3zAL3/5S5599lncbrf2y5Pw2Vqmer/ssyF8rMtpSvdee+01nnvuOSB5N6zGxkauvfbajpq+9dZb\nTJ8+3cwm9kkXXnjhETWcOHEin3zyCa2trbS3t7N27VqmTJlicktPf9/97nfZs2cPkDzWPnLkSNWy\nB9ra2njkkUd4+umnO2bwar88MV3VMtX7ZZ++YtZnL6c5evRos5vUZ/j9fu666y5aW1uJRqPMnTuX\ns88+m7vvvptwOExpaSkPPvggaWlpZjf1tFVRUcHDDz/Mvn37sNvtFBcX8+ijjzJv3rwjavjmm2/y\n3HPPYbFYuPHGG/nyl79sdvNPK13V8sYbb+SZZ54hMzMTp9PJgw8+SEFBgWrZjUWLFvHEE08wdOjQ\njuceeugh7r33Xu2Xx6mrWl577bW8+OKLKdsv+3QIi4iI9GV9djhaRESkr1MIi4iImEQhLCIiYhKF\nsIiIiEkUwiIiIiZRCIuIiJhEISwiImIShbCIiIhJ/j85sZEtIaQ2NgAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7f5d198b5a20>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nz+BWLCIicpzodzh6ypQplJeXM2vWLAzDYPbs2cyfPx+Px8OFF154JGoUERE5Lhnm3gd5j4BkH4vQ\n8Y3kUj+TR71MHvUyedTL5Dkix4RFRERkcCiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCyi\nEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhC\nWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgph\nERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRF\nREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCyiEBYR\nEbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELOIYyEpz5sxh5cqV\nGIbBPffcw6RJk3qWLVmyhF/84hfYbDZGjhxJRUUFNpuyXUREpD/9puWyZcuoqqpi7ty5VFRUUFFR\n0Wv597//fX71q1/x5z//mc7OTt57771BK1ZEROR40m8IL168mBkzZgBQWlpKe3s7gUCgZ/n8+fMp\nLCwEIDc3l9bW1kEqVURE5PjSbwg3NTWRk5PT8zg3N5fGxsaexxkZGQA0NDSwcOFCpk2bNghlioiI\nHH8GdEx4b6Zp7vNcc3Mzt912G7Nnz+4V2H3JyXHjcNgP9m0PyOv1JHV7Jzr1M3nUy+RRL5NHvUye\nw+1lvyHs8/loamrqedzQ0IDX6+15HAgE+OpXv8q3vvUtzjnnnH7fsLW16xBL7ZvX66GxsSOp2zyR\nqZ/Jo14mj3qZPOpl8hxML/cX1v0OR0+dOpUFCxYAsHbtWnw+X88QNMADDzzAV77yFc4777wBFSIi\nIiIJ/e4JT5kyhfLycmbNmoVhGMyePZv58+fj8Xg455xzeOGFF6iqqmLevHkAXHbZZcycOXPQCxcR\nETnWDeiY8J133tnr8bhx43p+XrNmTXIrEhEROUHoqhoiIiIWUQiLiIhYRCEsIiJiEYWwiIiIRRTC\nIiIiFlEIi4iIWEQhLCIiYhGFsIiIiEUUwiIiIhZRCIuIiFhEISwiImIRhbCIiIhFFMIiIiIWUQiL\niIhYRCEsIiJiEYWwiIiIRRTCIiIiFlEIi4iIWEQhLCIiYhGFsIiIiEUUwiIiIhZRCIuIiFhEISwi\nImIRhbCIiIhFFMIiIiIWUQiLiIhYRCEsIiJiEYWwiIiIRRTCIiIiFlEIi4iIWEQhLCIiYhGFsIiI\niEUUwiIiIhZRCIuIiFhEISwiImIRhbCIiIhFFMIiIiIWUQiLiIhYRCEsIiJiEYWwiIiIRRTCIiIi\nFlEIi4iIWEQhLCIiYhGFsIiIiEUUwiIiIhZRCIuIiFhEISwiImIRhbCIiIhFFMIiIiIWUQiLiIhY\nRCEsIiJikQGF8Jw5c5g5cyazZs1i1apVvZYtWrSIq6++mpkzZ/LYY48NSpEiIiLHo35DeNmyZVRV\nVTF37lwqKiqoqKjotfz+++/nkUce4dlnn2XhwoVUVlYOWrEiIiLHk35DePHixcyYMQOA0tJS2tvb\nCQQCAFRXV5OVlcWQIUOw2WxMmzaNxYsXD27FIiIix4l+Q7ipqYmcnJyex7m5uTQ2NgLQ2NhIbm5u\nn8tERETkwBwH+wLTNA/rDb1ez2G9/kht80SmfiaPepk86mXyqJfJc7i97HdP2Ofz0dTU1PO4oaEB\nr9fb57L6+np8Pt9hFSQiInKi6DeEp06dyoIFCwBYu3YtPp+PjIwMAEpKSggEAtTU1BCNRnnrrbeY\nOnXq4FYsIiJynDDMAYwvP/TQQ7z//vsYhsHs2bNZt24dHo+HCy+8kOXLl/PQQw8BcNFFF3HzzTcP\netEiIiLHgwGFsIiIiCSfrpglIiJiEYWwiIiIRQ76FKWjyZw5c1i5ciWGYXDPPfcwadIkq0s6Zixd\nupRvfvOblJWVATBmzBhuueUW/uu//otYLIbX6+VnP/sZLpfL4kqPbhs3buTrX/86N954I9dffz11\ndXV99vDFF1/k97//PTabjWuvvZZrrrnG6tKPOp/s5d13383atWvJzs4G4Oabb+b8889XLwfgwQcf\nZMWKFUSjUb72ta8xceJEfS4P0Sd7+eabbyb3c2keo5YuXWreeuutpmmaZmVlpXnttddaXNGxZcmS\nJeYdd9zR67m7777bfPnll03TNM2f//zn5jPPPGNFaceMzs5O8/rrrzfvvfde849//KNpmn33sLOz\n07zoootMv99vBoNB87Of/azZ2tpqZelHnb56edddd5lvvvnmPuuplwe2ePFi85ZbbjFN0zRbWlrM\nadOm6XN5iPrqZbI/l8fscPSBLqcph2bp0qV8+tOfBuCCCy7QJUj74XK5ePLJJ3udG99XD1euXMnE\niRPxeDykpqYyZcoUPvjgA6vKPir11cu+qJf9O/3003n44YcByMzMJBgM6nN5iPrqZSwW22e9w+nl\nMRvCB7qcpgxMZWUlt912G9dddx0LFy4kGAz2DD/n5eWpn/1wOBykpqb2eq6vHjY1Nenyrv3oq5cA\nTz/9NDfccAPf/va3aWlpUS8HwG6343a7AZg3bx7nnXeePpeHqK9e2u32pH4uj+ljwnszdabVQRkx\nYgS33347l1xyCdXV1dxwww29/sJTPw/f/nqo3g7MlVdeSXZ2NuPHj+eJJ57g0UcfZfLkyb3WUS/3\n7/XXX2fevHn89re/5aKLLup5Xp/Lg7d3L9esWZPUz+Uxuyd8oMtpSv8KCgq49NJLMQyDYcOGkZ+f\nT3t7O6FQCNAlSA+V2+3ep4d9fVbV2/6dddZZjB8/HoDp06ezceNG9XKA3nvvPf7nf/6HJ598Eo/H\no8/lYfhkL5P9uTxmQ/hAl9OU/r344os89dRTQOJuWM3NzVx11VU9PX311Vc599xzrSzxmHT22Wfv\n08OTTz6Z1atX4/f76ezs5IMPPuC0006zuNKj3x133EF1dTWQONZeVlamXg5AR0cHDz74II8//njP\nDF59Lg9NX71M9ufymL5i1icvpzlu3DirSzpmBAIB7rzzTvx+P5FIhNtvv53x48dz1113EQ6HKSoq\n4ic/+QlOp9PqUo9aa9as4ac//Sk7duzA4XBQUFDAQw89xN13371PD1955RWeeuopDMPg+uuv54or\nrrC6/KNKX728/vrreeKJJ0hLS8PtdvOTn/yEvLw89bIfc+fO5ZFHHmHkyJE9zz3wwAPce++9+lwe\npL56edVVV/H0008n7XN5TIewiIjIseyYHY4WERE51imERURELKIQFhERsYhCWERExCIKYREREYso\nhEVERCyiEBYREbGIQlhERMQi/x+NtPkP5URTTQAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7f5d191b20b8>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nabz33mpuvPEa4vE411xzPQAXX3wZ3/3utQwaNJhvfOMqnnvuKa6//qYeqV3XE5ZO1M/UUS9TR71M\nHfUydXQ9YRERkS/Z3/WE77jjJxZUtG8KYRER6VN0PWERERFJSiEsIiJiEYWwiIiIRRTCIiIiFlEI\ni4iIWEQhLCIiYhGFsIiIiEUUwiIiIhZRCIuIiFhEISwiImIRhbCIiIhFFMIiIiIWUQiLiIhYRCEs\nIiJiEYWwiIiIRRTCIiIiFlEIi4iIWEQhLCIiYhGFsIiIiEUUwiIiIhZxdOdBc+fOZe3atRiGwezZ\nsxk/fnzH2EsvvcTLL7+MzWZj7Nix/OQnP+mxYkVERPqSpFvCq1atorKykkWLFlFWVkZZWVnHWCAQ\n4Nlnn+Wll15i4cKFbNq0iQ8++KBHCxYREekrkobw8uXLmTZtGgDDhg2jqamJQCAAgNPpxOl00tbW\nRiwWIxgMkpOT07MVi4iI9BFJQ9jv95OXl9dxOz8/n9raWgDS09P53ve+x7Rp0zjzzDM55phjKCkp\n6blqRURE+pBu7RPek2maHf8OBAIsWLCAV199laysLL71rW+xYcMGRo0atc/n5+W5cTjsB1ftPni9\nnpQu70infqaOepk66mXqqJepc6i9TBrCPp8Pv9/fcbumpgav1wvApk2bGDRoEPn5+QBMmjSJ8vLy\n/YZwQ0PbIRX8ZV6vh9ralpQu80imfqaOepk66mXqqJepcyC93FdYJ52Onjx5MkuXLgVg/fr1+Hw+\nsrKyACgqKmLTpk2EQiEAysvLGTJkSLcKEhEROdIl3RKeOHEipaWlzJw5E8MwmDNnDkuWLMHj8TB9\n+nSuvfZarrrqKux2OxMmTGDSpEmHo24REZFezzD33Ml7GKR6GkRTK6mlfqaOepk66mXqqJepc1im\no0VERKRnKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYso\nhEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQ\nFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJY\nRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmER\nERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERExCIKYREREYsohEVE\nRCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiKM7D5o7dy5r167FMAxmz57N+PHjO8aq\nqqr44Q9/SDQaZcyYMdx99909VqyIiEhfknRLeNWqVVRWVrJo0SLKysooKyvrND5v3jyuueYaFi9e\njN1uZ9euXT1WrIiISF+SNISXL1/OtGnTABg2bBhNTU0EAgEAEokEa9asYerUqQDMmTOHgQMH9mC5\nIiIifUfS6Wi/309paWnH7fz8fGpra8nKyqK+vp7MzEzuu+8+1q9fz6RJk7jtttv2u7y8PDcOh/3Q\nK9+D1+tJ6fKOdOpn6qiXqaNepo56mTqH2stu7RPek2manf5dXV3NVVddRVFREddffz3/+Mc/OOOM\nM/b5/IaGtoMqdF+8Xg+1tS0pXeaRTP1MHfUyddTL1FEvU+dAermvsE46He3z+fD7/R23a2pq8Hq9\nAOTl5TFw4EAGDx6M3W7n5JNP5tNPP+1WQSIiIke6pCE8efJkli5dCsD69evx+XxkZWUB4HA4GDRo\nEFu3bu0YLykp6blqRURE+pCk09ETJ06ktLSUmTNnYhgGc+bMYcmSJXg8HqZPn87s2bOZNWsWpmky\ncuTIji9piYiIyP4Z5p47eQ+DVO+L0P6N1FI/U0e9TB31MnXUy9Q5LPuERUREpGcohEVERCyiEBYR\nEbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIgphERERiyiERURELKIQFhERsYhCWERE\nxCIKYREREYsohEVERCyiEBYREbGIQlhERMQiCmERERGLKIRFREQsohAWERGxiEJYRETEIg6rCxCR\nr6bNm3bzy6WbGNAvk3OOH8SYkgKrSxLpcxTCIrKXzZ/u4ueLPqDN4aKuOUz55nq+d/oAjjtltNWl\nifQpmo4WkU5i8QS/XLSGkM3Jjaf4+PHM8TjjUV76+yZagxGryxPpU7QlLCKdrHhzLXWOTM7xxjjh\n9LEAfO3oTH5fEWHx//ydb333XIsrPHjhSJyn/+8jdtQGKMh2ccywAk4s7U+224lhGFaXJ0cghbCI\ndEgkTF5ZsR2HzcX0S0/ruH/6109h9byX+WdTNses/IRjTzzawioPTjyR4Mk/l7N2Ux0Z6XZqGoJ8\n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\n7jruuOMO4vE4Xq+XBx98kLS0NIsr/WrbuHEjN910E1dffTVXXnklVVVVXfbw5Zdf5le/+hU2m43L\nL7+cyy67zOrSv3K+3MtZs2axfv16cnNzAbj22ms544wz1MtueOCBB1izZg2xWIwbbriBcePGab08\nSF/u5RtvvJHa9dLspVauXGlef/31pmmaZkVFhXn55ZdbXFHvsmLFCvP73/9+p/tmzZplvvLKK6Zp\nmubDDz9svvTSS1aU1mu0traaV155pXnXXXeZL7zwgmmaXfewtbXVPPvss83m5mYzGAya559/vtnQ\n0GBl6V85XfXyzjvvNN944429Hqde7t/y5cvN6667zjRN06yvrzenTJmi9fIgddXLVK+XvXY6en+n\n05SDs3LlSs466ywAzjzzTJ2CNIm0tDSefvrpTsfGd9XDtWvXMm7cODweDy6Xi4kTJ/Lee+9ZVfZX\nUle97Ip6mdzxxx/Po48+CkB2djbBYFDr5UHqqpfxeHyvxx1KL3ttCO/vdJrSPRUVFdx4441cccUV\nLFu2jGAw2DH9XFBQoH4m4XA4cLlcne7rqod+v1+nd02iq14CvPjii1x11VXceuut1NfXq5fdYLfb\ncbvdACxevJjTTz9d6+VB6qqXdrs9petlr94nvCdTR1odkCFDhnDzzTdz7rnnsn37dq666qpOn/DU\nz0O3rx6qt91z0UUXkZuby+jRo3nqqad4/PHHmTBhQqfHqJf79re//Y3Fixfz3HPPcfbZZ3fcr/Xy\nwO3Zy/Ly8pSul712S3h/p9OU5AoLCznvvPMwDIPBgwfTr18/mpqaCIVCgE5BerDcbvdePexqXVVv\nkzv55JMZPXo0AFOnTmXjxo3qZTe99dZbPPnkkzz99NN4PB6tl4fgy71M9XrZa0N4f6fTlORefvll\nnn32WaD9alh1dXVcfPHFHT197bXXOO2006wssVc65ZRT9urhMcccw4cffkhzczOtra289957TJo0\nyeJKv/q+//3vs337dqB9X/uIESPUy25oaWnhgQceYMGCBR3f4NV6eXC66mWq18tefcasL59Oc9So\nUVaX1GsEAgFuv/12mpubiUaj3HzzzYwePZo777yTcDjMwIEDue+++3A6nVaX+pVVXl7O/fffz86d\nO3E4HBQWFvLQQw8xa9asvXr46quv8uyzz2IYBldeeSUXXnih1eV/pXTVyyuvvJKnnnqKjIwM3G43\n9913HwUFBeplEosWLWL+/PmUlJR03Ddv3jzuuusurZcHqKteXnzxxbz44ospWy97dQiLiIj0Zr12\nOlpERKS3UwiLiIhYRCEsIiJiEYWwiIiIRRTCIiIiFlEIi4iIWEQhLCIiYhGFsIiIiEX+PwQI5SiY\nbVFfAAAAAElFTkSuQmCC\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7f5d19196c88>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "YSk8DESNoOw1",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## 8.6. Evaluate performance using RMSE Metrics"
      ]
    },
    {
      "metadata": {
        "id": "ELSNkhk7ZvCg",
        "colab_type": "code",
        "outputId": "5e047aea-49cc-40a9-ab06-beff3726c775",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 68
        }
      },
      "cell_type": "code",
      "source": [
        "from math import sqrt\n",
        "from sklearn.metrics import mean_squared_error\n",
        "\n",
        "# calculate RMSE\n",
        "rmse = sqrt(mean_squared_error(pd_moving_y_pred.X, test_yp[starting_step:starting_step+number_steps,0]))\n",
        "print('X Test RMSE: %.3f' % rmse)\n",
        "rmse = sqrt(mean_squared_error(pd_moving_y_pred.Y, test_yp[starting_step:starting_step+number_steps,1]))\n",
        "print('Y Test RMSE: %.3f' % rmse)\n",
        "rmse = sqrt(mean_squared_error(pd_moving_y_pred.Z, test_yp[starting_step:starting_step+number_steps,2]))\n",
        "print('Z Test RMSE: %.3f' % rmse)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "X Test RMSE: 0.039\n",
            "Y Test RMSE: 0.093\n",
            "Z Test RMSE: 0.031\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "yAhMSS5LVJ4h",
        "colab_type": "code",
        "outputId": "4706413f-3796-4a14-d826-6992bc345376",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 8721
        }
      },
      "cell_type": "code",
      "source": [
        "# Predicting in base of a sliding window of 100 measurements\n",
        "\n",
        "from math import sqrt\n",
        "from sklearn.metrics import mean_squared_error\n",
        "\n",
        "moving_y_pred = []\n",
        "number_steps =  500\n",
        "\n",
        "for i in range(number_steps):\n",
        "  #prediction input:\n",
        "  pred_x = test_xp[i:i+1,:,:]\n",
        "  pred_y = my_model_NN.predict(pred_x)\n",
        "  print(str(i)+\"/\"+str(number_steps)+\": \" + str(pred_y[0]))\n",
        "  \n",
        "  moving_y_pred.append(list(pred_y[0]))\n",
        "\n",
        "pd_moving_y_pred = pd.DataFrame(moving_y_pred)\n",
        "pd_moving_y_pred.columns = (\"X\",\"Y\",\"Z\")\n",
        "\n",
        "print(pd_moving_y_pred.head())\n",
        "print(pd_moving_y_pred.tail())"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0/500: [0.500721   0.46555546 0.47585866]\n",
            "1/500: [0.5010144  0.46558362 0.47593427]\n",
            "2/500: [0.5013143  0.46563467 0.4760105 ]\n",
            "3/500: [0.50156647 0.46563098 0.47605005]\n",
            "4/500: [0.50182986 0.46561137 0.47607353]\n",
            "5/500: [0.5021232  0.46561176 0.47615626]\n",
            "6/500: [0.50234616 0.46561489 0.47621515]\n",
            "7/500: [0.502501   0.46565187 0.47628775]\n",
            "8/500: [0.5024949  0.46542957 0.47623065]\n",
            "9/500: [0.5026067  0.46551076 0.4763074 ]\n",
            "10/500: [0.50264883 0.46551406 0.47634757]\n",
            "11/500: [0.50264126 0.46549064 0.4763605 ]\n",
            "12/500: [0.50248134 0.46542338 0.47626033]\n",
            "13/500: [0.50229967 0.46529624 0.47617015]\n",
            "14/500: [0.5020417  0.46519193 0.47601095]\n",
            "15/500: [0.50170195 0.46507978 0.47579136]\n",
            "16/500: [0.50132316 0.46491262 0.47552058]\n",
            "17/500: [0.50104684 0.4647984  0.47526544]\n",
            "18/500: [0.50080013 0.4646366  0.4750069 ]\n",
            "19/500: [0.5006613  0.46449238 0.47480977]\n",
            "20/500: [0.50059044 0.4643608  0.4746376 ]\n",
            "21/500: [0.500622   0.46424964 0.47451252]\n",
            "22/500: [0.5006983  0.46417472 0.474409  ]\n",
            "23/500: [0.5008813 0.464119  0.4743776]\n",
            "24/500: [0.50112486 0.46411303 0.47440338]\n",
            "25/500: [0.5014421  0.4641436  0.47447264]\n",
            "26/500: [0.5017572  0.46417236 0.4745307 ]\n",
            "27/500: [0.5019579 0.4642233 0.4745054]\n",
            "28/500: [0.5021723  0.464259   0.47450987]\n",
            "29/500: [0.502379   0.46432924 0.47457984]\n",
            "30/500: [0.502491   0.4644018  0.47468358]\n",
            "31/500: [0.5024928  0.46447042 0.47473973]\n",
            "32/500: [0.50240594 0.4645166  0.4747525 ]\n",
            "33/500: [0.5023298  0.46452594 0.4748312 ]\n",
            "34/500: [0.5021532  0.46453866 0.47486117]\n",
            "35/500: [0.50196916 0.464513   0.4748602 ]\n",
            "36/500: [0.5017335  0.46453407 0.47483373]\n",
            "37/500: [0.50151706 0.46459803 0.47482327]\n",
            "38/500: [0.5013802  0.46465558 0.47488394]\n",
            "39/500: [0.50127846 0.46474952 0.47491226]\n",
            "40/500: [0.501179   0.46480694 0.4748995 ]\n",
            "41/500: [0.5011166  0.46484742 0.47490153]\n",
            "42/500: [0.5010515 0.4648877 0.4748739]\n",
            "43/500: [0.50096565 0.46493784 0.4747889 ]\n",
            "44/500: [0.5007927  0.46496096 0.4746528 ]\n",
            "45/500: [0.5005763  0.46496883 0.4745348 ]\n",
            "46/500: [0.5002995 0.4649574 0.4743833]\n",
            "47/500: [0.50000197 0.4648913  0.47424015]\n",
            "48/500: [0.49976587 0.46472088 0.47408658]\n",
            "49/500: [0.49960557 0.4646351  0.47400442]\n",
            "50/500: [0.499403   0.46454045 0.47392637]\n",
            "51/500: [0.49920994 0.46439815 0.4738958 ]\n",
            "52/500: [0.4990865  0.46426347 0.47388962]\n",
            "53/500: [0.4989469  0.46414456 0.47384492]\n",
            "54/500: [0.49890727 0.46406403 0.47383463]\n",
            "55/500: [0.49898767 0.4640334  0.4738688 ]\n",
            "56/500: [0.4991477  0.46406528 0.4738863 ]\n",
            "57/500: [0.49930766 0.4641506  0.47390255]\n",
            "58/500: [0.49953973 0.46422404 0.47392318]\n",
            "59/500: [0.49992478 0.4642929  0.47399002]\n",
            "60/500: [0.50028944 0.46443462 0.47402155]\n",
            "61/500: [0.50070864 0.46459267 0.4740782 ]\n",
            "62/500: [0.50122964 0.46467337 0.4741914 ]\n",
            "63/500: [0.5017367  0.46485665 0.47437182]\n",
            "64/500: [0.50223917 0.46507922 0.47452268]\n",
            "65/500: [0.5028074  0.4653449  0.47479105]\n",
            "66/500: [0.5031582  0.46550742 0.4749479 ]\n",
            "67/500: [0.5033719  0.46556196 0.4750966 ]\n",
            "68/500: [0.5035479  0.46542418 0.47522745]\n",
            "69/500: [0.5034421  0.46521047 0.47523057]\n",
            "70/500: [0.50312424 0.46484914 0.47517028]\n",
            "71/500: [0.5027476  0.46456233 0.47514716]\n",
            "72/500: [0.5022316  0.46415752 0.47503248]\n",
            "73/500: [0.5015519  0.46389818 0.4749231 ]\n",
            "74/500: [0.5007509  0.46357968 0.4747601 ]\n",
            "75/500: [0.49975753 0.4634692  0.4744746 ]\n",
            "76/500: [0.49869755 0.46341267 0.4741259 ]\n",
            "77/500: [0.49782902 0.46345827 0.47379366]\n",
            "78/500: [0.49701077 0.4633768  0.4733439 ]\n",
            "79/500: [0.49655715 0.46351233 0.47304317]\n",
            "80/500: [0.49636924 0.46351132 0.4726983 ]\n",
            "81/500: [0.49661562 0.46365175 0.4725519 ]\n",
            "82/500: [0.49711102 0.46383348 0.47252157]\n",
            "83/500: [0.49764222 0.46398368 0.47251317]\n",
            "84/500: [0.49817008 0.46418253 0.47264346]\n",
            "85/500: [0.49865595 0.46448585 0.4728936 ]\n",
            "86/500: [0.4989791  0.46483296 0.4732031 ]\n",
            "87/500: [0.49914634 0.46515676 0.47349524]\n",
            "88/500: [0.4991947  0.46563873 0.47380173]\n",
            "89/500: [0.49906343 0.46601316 0.47396868]\n",
            "90/500: [0.49849796 0.46648976 0.47399756]\n",
            "91/500: [0.49775025 0.46686426 0.47389194]\n",
            "92/500: [0.49700174 0.46717608 0.4737309 ]\n",
            "93/500: [0.4962861  0.46727616 0.47352865]\n",
            "94/500: [0.49548656 0.46727407 0.47323063]\n",
            "95/500: [0.4950199 0.4672121 0.4730229]\n",
            "96/500: [0.49477774 0.46706304 0.47283086]\n",
            "97/500: [0.49482664 0.46683687 0.4727003 ]\n",
            "98/500: [0.4951387  0.46657425 0.47263306]\n",
            "99/500: [0.49589044 0.4664372  0.47280186]\n",
            "100/500: [0.49682403 0.46646583 0.47312152]\n",
            "101/500: [0.49781772 0.466763   0.47358057]\n",
            "102/500: [0.49862912 0.46733508 0.4740795 ]\n",
            "103/500: [0.49925047 0.4679884  0.4746736 ]\n",
            "104/500: [0.49956018 0.46862948 0.47513166]\n",
            "105/500: [0.49948052 0.46919152 0.47535858]\n",
            "106/500: [0.49924487 0.46952966 0.47553697]\n",
            "107/500: [0.4987434  0.46973905 0.47557777]\n",
            "108/500: [0.49806392 0.46977141 0.47552973]\n",
            "109/500: [0.49726498 0.46957073 0.47537115]\n",
            "110/500: [0.49644583 0.46937904 0.47510138]\n",
            "111/500: [0.49575308 0.46909705 0.47486588]\n",
            "112/500: [0.49533123 0.4687481  0.4746728 ]\n",
            "113/500: [0.49538234 0.46843335 0.47465092]\n",
            "114/500: [0.49533778 0.4683231  0.4746626 ]\n",
            "115/500: [0.49534476 0.4682711  0.4748461 ]\n",
            "116/500: [0.49569947 0.4680959  0.47516868]\n",
            "117/500: [0.4963969  0.46789667 0.47564313]\n",
            "118/500: [0.49760535 0.4676743  0.47637072]\n",
            "119/500: [0.49897802 0.4675968  0.47713652]\n",
            "120/500: [0.50051457 0.46763626 0.47805813]\n",
            "121/500: [0.50195396 0.4676744  0.47899285]\n",
            "122/500: [0.5031988  0.46765667 0.4798207 ]\n",
            "123/500: [0.5043841  0.46748802 0.48051062]\n",
            "124/500: [0.5051027  0.4673     0.48083654]\n",
            "125/500: [0.5058269  0.46679407 0.4806605 ]\n",
            "126/500: [0.5062464 0.4665269 0.4799854]\n",
            "127/500: [0.5071187  0.46624675 0.47966236]\n",
            "128/500: [0.5082899  0.46600214 0.47983244]\n",
            "129/500: [0.51003397 0.46580407 0.4809982 ]\n",
            "130/500: [0.5123532  0.46576056 0.48306647]\n",
            "131/500: [0.51486737 0.46582314 0.4854124 ]\n",
            "132/500: [0.5169483  0.46634665 0.48732784]\n",
            "133/500: [0.5183432 0.4672928 0.4883733]\n",
            "134/500: [0.5187212  0.46878323 0.48859757]\n",
            "135/500: [0.5188497  0.47044215 0.4883702 ]\n",
            "136/500: [0.51905924 0.47214484 0.48803124]\n",
            "137/500: [0.5196731  0.4738665  0.48787296]\n",
            "138/500: [0.5210302  0.47562817 0.48816818]\n",
            "139/500: [0.5230592  0.477585   0.48895493]\n",
            "140/500: [0.52578944 0.4803112  0.4903377 ]\n",
            "141/500: [0.54215866 0.48950857 0.4969185 ]\n",
            "142/500: [0.5403829  0.4980197  0.49479663]\n",
            "143/500: [0.54231036 0.50504947 0.494482  ]\n",
            "144/500: [0.5463755  0.51256263 0.49491906]\n",
            "145/500: [0.548319   0.5188175  0.49443752]\n",
            "146/500: [0.5411084  0.5213809  0.48931596]\n",
            "147/500: [0.5325616  0.5194432  0.48353997]\n",
            "148/500: [0.5284899  0.51329714 0.4788563 ]\n",
            "149/500: [0.5278949  0.504052   0.47551003]\n",
            "150/500: [0.5272369  0.49340993 0.47181746]\n",
            "151/500: [0.52546483 0.48328498 0.46771023]\n",
            "152/500: [0.5341399  0.4757091  0.47049946]\n",
            "153/500: [0.53715783 0.4718229  0.47123006]\n",
            "154/500: [0.53959185 0.4707338  0.47295815]\n",
            "155/500: [0.5358377  0.4701298  0.47325835]\n",
            "156/500: [0.5303976  0.46927643 0.47399297]\n",
            "157/500: [0.5270565  0.46785498 0.47559723]\n",
            "158/500: [0.52525747 0.4665741  0.47735772]\n",
            "159/500: [0.5236319  0.46505448 0.47930044]\n",
            "160/500: [0.5224285  0.46508622 0.48061362]\n",
            "161/500: [0.52204883 0.46550268 0.48232654]\n",
            "162/500: [0.5226194  0.46729738 0.4844792 ]\n",
            "163/500: [0.5227271  0.47014216 0.48680514]\n",
            "164/500: [0.52216506 0.47390723 0.48885998]\n",
            "165/500: [0.5206189  0.47814462 0.4903748 ]\n",
            "166/500: [0.5187833  0.4827185  0.49170902]\n",
            "167/500: [0.5165448  0.4875527  0.49280086]\n",
            "168/500: [0.5142455  0.49192318 0.49337295]\n",
            "169/500: [0.51160556 0.49525514 0.49329194]\n",
            "170/500: [0.50937563 0.49743074 0.49279   ]\n",
            "171/500: [0.50779736 0.4979922  0.49214163]\n",
            "172/500: [0.5072951  0.49704236 0.49165705]\n",
            "173/500: [0.5074033  0.4950466  0.49111256]\n",
            "174/500: [0.50782704 0.49284777 0.49042025]\n",
            "175/500: [0.50842434 0.49073753 0.48977175]\n",
            "176/500: [0.5091649  0.48901853 0.4891748 ]\n",
            "177/500: [0.5096546  0.4872791  0.48863184]\n",
            "178/500: [0.51051044 0.48597813 0.4884815 ]\n",
            "179/500: [0.511773  0.4853635 0.4885408]\n",
            "180/500: [0.51247394 0.48508635 0.48854965]\n",
            "181/500: [0.5134429  0.4852892  0.48869616]\n",
            "182/500: [0.51416945 0.48602584 0.4888305 ]\n",
            "183/500: [0.51443094 0.48693696 0.48873433]\n",
            "184/500: [0.51287687 0.48746955 0.4880063 ]\n",
            "185/500: [0.51160365 0.48752537 0.48741454]\n",
            "186/500: [0.5110707  0.48723868 0.48700896]\n",
            "187/500: [0.5108149  0.48712754 0.48665804]\n",
            "188/500: [0.51031256 0.48726025 0.4862261 ]\n",
            "189/500: [0.5098079  0.48704934 0.48558906]\n",
            "190/500: [0.5092648  0.4870771  0.48499414]\n",
            "191/500: [0.5088852  0.4867405  0.48441827]\n",
            "192/500: [0.50853086 0.4863255  0.4838749 ]\n",
            "193/500: [0.50848573 0.4856716  0.48349866]\n",
            "194/500: [0.5089991  0.4857467  0.48340386]\n",
            "195/500: [0.5094047  0.48573795 0.48340523]\n",
            "196/500: [0.50952715 0.48576385 0.4832467 ]\n",
            "197/500: [0.5095949  0.48543146 0.48302838]\n",
            "198/500: [0.50895184 0.48499233 0.48252824]\n",
            "199/500: [0.5087923  0.48471835 0.48225743]\n",
            "200/500: [0.50829715 0.48470655 0.4819745 ]\n",
            "201/500: [0.5080592  0.48426345 0.4818945 ]\n",
            "202/500: [0.5077974  0.4840391  0.48176482]\n",
            "203/500: [0.5074532  0.48379633 0.48162922]\n",
            "204/500: [0.50735646 0.4836069  0.48165646]\n",
            "205/500: [0.5070552  0.48337516 0.48161277]\n",
            "206/500: [0.5066147  0.48314002 0.4814231 ]\n",
            "207/500: [0.50603724 0.48269626 0.4813137 ]\n",
            "208/500: [0.5064029  0.4831941  0.48154607]\n",
            "209/500: [0.50608045 0.48369244 0.48153993]\n",
            "210/500: [0.5058061  0.48409435 0.481497  ]\n",
            "211/500: [0.5056374 0.4843511 0.4814158]\n",
            "212/500: [0.50540626 0.4841505  0.48123634]\n",
            "213/500: [0.505261   0.48401043 0.48102134]\n",
            "214/500: [0.5052689  0.48388174 0.4809051 ]\n",
            "215/500: [0.50526977 0.48402575 0.4808105 ]\n",
            "216/500: [0.50519234 0.48421952 0.48072785]\n",
            "217/500: [0.5048667  0.484321   0.48058006]\n",
            "218/500: [0.5042417  0.48412186 0.48022607]\n",
            "219/500: [0.503793  0.483966  0.4799674]\n",
            "220/500: [0.50369656 0.48387834 0.47982058]\n",
            "221/500: [0.5030819  0.48407122 0.47952372]\n",
            "222/500: [0.5027099  0.48422134 0.47938946]\n",
            "223/500: [0.5030047  0.48463926 0.4795119 ]\n",
            "224/500: [0.5033094  0.48501942 0.47963032]\n",
            "225/500: [0.5038495  0.4856375  0.47975972]\n",
            "226/500: [0.5058104  0.48847553 0.48059812]\n",
            "227/500: [0.5070367  0.490568   0.48118144]\n",
            "228/500: [0.5041824  0.4899632  0.47981328]\n",
            "229/500: [0.5008061  0.4867026  0.47820678]\n",
            "230/500: [0.5011844 0.4849066 0.4780134]\n",
            "231/500: [0.50175273 0.48358762 0.47795537]\n",
            "232/500: [0.50165224 0.48192537 0.47793546]\n",
            "233/500: [0.5015626  0.47945175 0.47791138]\n",
            "234/500: [0.50170296 0.4775424  0.4777363 ]\n",
            "235/500: [0.50192827 0.4764416  0.47755262]\n",
            "236/500: [0.501598   0.47587043 0.47725502]\n",
            "237/500: [0.5010343  0.47576734 0.47707948]\n",
            "238/500: [0.50092256 0.47599104 0.47726697]\n",
            "239/500: [0.50088274 0.47623476 0.47764644]\n",
            "240/500: [0.5019142 0.4773905 0.4784107]\n",
            "241/500: [0.5031838  0.47892085 0.47939768]\n",
            "242/500: [0.50486016 0.48039642 0.4806206 ]\n",
            "243/500: [0.5059256  0.48201212 0.48159337]\n",
            "244/500: [0.5062338 0.4832604 0.4821043]\n",
            "245/500: [0.50631636 0.4839988  0.48242834]\n",
            "246/500: [0.50615245 0.48434973 0.48246512]\n",
            "247/500: [0.5058191 0.4840886 0.4822619]\n",
            "248/500: [0.5054405 0.4838488 0.4819127]\n",
            "249/500: [0.5049639  0.48341674 0.48152244]\n",
            "250/500: [0.5044447  0.48282614 0.48106214]\n",
            "251/500: [0.5036156  0.48211792 0.48035845]\n",
            "252/500: [0.50311065 0.4813399  0.47983077]\n",
            "253/500: [0.5025977  0.48059863 0.47927144]\n",
            "254/500: [0.50246453 0.48026222 0.47905198]\n",
            "255/500: [0.5023042  0.48007354 0.47880992]\n",
            "256/500: [0.5022105  0.4798294  0.47856727]\n",
            "257/500: [0.5022729  0.47986272 0.47859016]\n",
            "258/500: [0.50220305 0.47984824 0.47849932]\n",
            "259/500: [0.5021301  0.4798637  0.47838682]\n",
            "260/500: [0.50199646 0.47989786 0.47824508]\n",
            "261/500: [0.5019326  0.47994062 0.47808602]\n",
            "262/500: [0.5016213 0.4798381 0.4777477]\n",
            "263/500: [0.50149053 0.47961733 0.47747752]\n",
            "264/500: [0.5014124  0.47951314 0.47721833]\n",
            "265/500: [0.5012912  0.47931805 0.4769647 ]\n",
            "266/500: [0.5012336  0.4791042  0.47675458]\n",
            "267/500: [0.5010213 0.478954  0.4764725]\n",
            "268/500: [0.5008587  0.47849342 0.47625422]\n",
            "269/500: [0.50077087 0.47818843 0.47597113]\n",
            "270/500: [0.5008696  0.47793308 0.47577673]\n",
            "271/500: [0.5010604  0.47772208 0.47565004]\n",
            "272/500: [0.5010469  0.47753325 0.47546226]\n",
            "273/500: [0.5010914  0.4772373  0.47521207]\n",
            "274/500: [0.5012993  0.47706923 0.47507635]\n",
            "275/500: [0.5014537  0.47706077 0.47513938]\n",
            "276/500: [0.5016733  0.4769975  0.47507742]\n",
            "277/500: [0.501465   0.47687247 0.47467634]\n",
            "278/500: [0.50113755 0.4767796  0.47431526]\n",
            "279/500: [0.50080234 0.47660458 0.4739272 ]\n",
            "280/500: [0.5005404 0.4764439 0.4736388]\n",
            "281/500: [0.5004625  0.47630534 0.4736649 ]\n",
            "282/500: [0.5005234 0.4762919 0.4738904]\n",
            "283/500: [0.5007578  0.47658598 0.47434714]\n",
            "284/500: [0.50102985 0.47710675 0.47495857]\n",
            "285/500: [0.5016213  0.47745192 0.47575286]\n",
            "286/500: [0.5020716  0.47778237 0.476467  ]\n",
            "287/500: [0.50245273 0.47807384 0.47710314]\n",
            "288/500: [0.50284463 0.4781903  0.4776352 ]\n",
            "289/500: [0.503258  0.4783497 0.478079 ]\n",
            "290/500: [0.5035378  0.4786118  0.47842744]\n",
            "291/500: [0.50364643 0.47880128 0.47860637]\n",
            "292/500: [0.50355154 0.47886634 0.47859278]\n",
            "293/500: [0.50337994 0.47883266 0.4784504 ]\n",
            "294/500: [0.5032179  0.47879493 0.4782363 ]\n",
            "295/500: [0.50308114 0.47877482 0.47803184]\n",
            "296/500: [0.5029586  0.47872046 0.47778946]\n",
            "297/500: [0.5028798  0.4786833  0.47759405]\n",
            "298/500: [0.5028915  0.47854325 0.4775137 ]\n",
            "299/500: [0.50293434 0.47845125 0.47745368]\n",
            "300/500: [0.5029766  0.47839996 0.47745577]\n",
            "301/500: [0.50311905 0.47830483 0.4775767 ]\n",
            "302/500: [0.50322527 0.47826588 0.47767937]\n",
            "303/500: [0.5033689  0.47825226 0.47783744]\n",
            "304/500: [0.50344735 0.47830275 0.47802263]\n",
            "305/500: [0.5034962  0.4783381  0.47814152]\n",
            "306/500: [0.5035281  0.47838345 0.4782343 ]\n",
            "307/500: [0.5035745  0.4783819  0.47831842]\n",
            "308/500: [0.5035837  0.4783446  0.47835368]\n",
            "309/500: [0.5034974  0.47834623 0.47822312]\n",
            "310/500: [0.50343615 0.4782482  0.47817394]\n",
            "311/500: [0.50340647 0.47816053 0.4781362 ]\n",
            "312/500: [0.50340176 0.47810665 0.4781228 ]\n",
            "313/500: [0.50342673 0.47808096 0.47809848]\n",
            "314/500: [0.503338  0.4780877 0.4779999]\n",
            "315/500: [0.5033184  0.4780831  0.47795248]\n",
            "316/500: [0.50321424 0.4780907  0.4778774 ]\n",
            "317/500: [0.5031161 0.4781015 0.4777886]\n",
            "318/500: [0.5030652  0.4781671  0.47775403]\n",
            "319/500: [0.50303394 0.47827187 0.47770998]\n",
            "320/500: [0.50299335 0.47844934 0.47770682]\n",
            "321/500: [0.5029376  0.47854742 0.47765288]\n",
            "322/500: [0.5028364 0.4785854 0.4775538]\n",
            "323/500: [0.5028445  0.47861525 0.47756055]\n",
            "324/500: [0.50279915 0.4786314  0.4774902 ]\n",
            "325/500: [0.5028276  0.47867656 0.4774762 ]\n",
            "326/500: [0.5028004  0.47870764 0.47738126]\n",
            "327/500: [0.5028235  0.47872815 0.47734508]\n",
            "328/500: [0.5027823  0.47876027 0.47729245]\n",
            "329/500: [0.5027984  0.47876927 0.4772919 ]\n",
            "330/500: [0.5028711  0.47874928 0.47733098]\n",
            "331/500: [0.50291556 0.47875997 0.47735658]\n",
            "332/500: [0.5029596  0.47875044 0.47739413]\n",
            "333/500: [0.50298357 0.47873554 0.4774347 ]\n",
            "334/500: [0.5029299  0.47877252 0.47746244]\n",
            "335/500: [0.5029224  0.47876796 0.47751266]\n",
            "336/500: [0.5029523  0.47872365 0.47756216]\n",
            "337/500: [0.50296915 0.47872937 0.47758815]\n",
            "338/500: [0.50298166 0.47876248 0.47762153]\n",
            "339/500: [0.50302905 0.47879282 0.47769356]\n",
            "340/500: [0.5030819  0.47882223 0.47777438]\n",
            "341/500: [0.50309354 0.478865   0.47782674]\n",
            "342/500: [0.5017262  0.47590593 0.47740644]\n",
            "343/500: [0.50054854 0.47274336 0.4767588 ]\n",
            "344/500: [0.49960247 0.46970677 0.4760517 ]\n",
            "345/500: [0.49889383 0.46700552 0.47536346]\n",
            "346/500: [0.49848878 0.46477103 0.47477627]\n",
            "347/500: [0.4984146  0.46299034 0.47442907]\n",
            "348/500: [0.4984742  0.46161944 0.4742002 ]\n",
            "349/500: [0.49859825 0.46056467 0.47402903]\n",
            "350/500: [0.49874234 0.45987546 0.47393972]\n",
            "351/500: [0.4988398  0.4594114  0.47383198]\n",
            "352/500: [0.49900752 0.45916387 0.47386655]\n",
            "353/500: [0.4991254  0.4590056  0.47388074]\n",
            "354/500: [0.4991812  0.45898443 0.47387615]\n",
            "355/500: [0.4992422  0.4589523  0.47390994]\n",
            "356/500: [0.49931568 0.45897022 0.47396454]\n",
            "357/500: [0.49936002 0.45896044 0.4740008 ]\n",
            "358/500: [0.4993804  0.45894757 0.47403687]\n",
            "359/500: [0.49927962 0.4589598  0.4739788 ]\n",
            "360/500: [0.49913985 0.45894194 0.4738603 ]\n",
            "361/500: [0.49899137 0.4589568  0.47375163]\n",
            "362/500: [0.49884558 0.45896256 0.47367695]\n",
            "363/500: [0.49868608 0.45896363 0.47358328]\n",
            "364/500: [0.49861905 0.45896736 0.47356778]\n",
            "365/500: [0.49853116 0.45897886 0.47351852]\n",
            "366/500: [0.49847072 0.45901594 0.4735039 ]\n",
            "367/500: [0.49845657 0.45912677 0.4735411 ]\n",
            "368/500: [0.49847564 0.45921955 0.4735909 ]\n",
            "369/500: [0.49853364 0.4593485  0.47367418]\n",
            "370/500: [0.49863708 0.45950052 0.47379848]\n",
            "371/500: [0.49875492 0.45965573 0.47391555]\n",
            "372/500: [0.49884152 0.45976427 0.47400382]\n",
            "373/500: [0.49896705 0.4598714  0.4741117 ]\n",
            "374/500: [0.49901325 0.45995182 0.4741254 ]\n",
            "375/500: [0.49902946 0.45991746 0.4741233 ]\n",
            "376/500: [0.4990552  0.45988932 0.47411153]\n",
            "377/500: [0.49901915 0.4598392  0.474058  ]\n",
            "378/500: [0.49902892 0.4597768  0.47402886]\n",
            "379/500: [0.49903995 0.45968515 0.4739869 ]\n",
            "380/500: [0.4990367  0.45963815 0.4739212 ]\n",
            "381/500: [0.4990695  0.4595827  0.47391263]\n",
            "382/500: [0.4990822  0.4595483  0.47388336]\n",
            "383/500: [0.4990614  0.45950642 0.47383195]\n",
            "384/500: [0.49902993 0.45947257 0.47376987]\n",
            "385/500: [0.49900454 0.45947188 0.47371775]\n",
            "386/500: [0.4989966  0.45946798 0.47369608]\n",
            "387/500: [0.4989712  0.45951533 0.47367856]\n",
            "388/500: [0.49897623 0.45953783 0.47367573]\n",
            "389/500: [0.49896085 0.4596282  0.47370484]\n",
            "390/500: [0.49897778 0.4596535  0.47373036]\n",
            "391/500: [0.49896604 0.45974702 0.4737182 ]\n",
            "392/500: [0.49894387 0.45983806 0.4737012 ]\n",
            "393/500: [0.49895245 0.45992973 0.47371638]\n",
            "394/500: [0.49894845 0.46000037 0.47371897]\n",
            "395/500: [0.49895537 0.46006244 0.47371146]\n",
            "396/500: [0.49898237 0.46008062 0.47371897]\n",
            "397/500: [0.49899513 0.4601436  0.47375342]\n",
            "398/500: [0.4989881  0.4601724  0.47376293]\n",
            "399/500: [0.498959  0.4602219 0.473753 ]\n",
            "400/500: [0.49892378 0.4603016  0.47373584]\n",
            "401/500: [0.49885857 0.4603446  0.47368366]\n",
            "402/500: [0.49882323 0.46040457 0.47365054]\n",
            "403/500: [0.49879467 0.4604641  0.4736121 ]\n",
            "404/500: [0.49876267 0.46053398 0.473568  ]\n",
            "405/500: [0.49879414 0.46062264 0.4735979 ]\n",
            "406/500: [0.49885768 0.46070507 0.4736662 ]\n",
            "407/500: [0.4989651  0.46076864 0.47373798]\n",
            "408/500: [0.49901682 0.4608619  0.4737768 ]\n",
            "409/500: [0.49907243 0.4609176  0.47382608]\n",
            "410/500: [0.49912015 0.46098974 0.4738952 ]\n",
            "411/500: [0.49909443 0.46100083 0.473893  ]\n",
            "412/500: [0.4990638  0.4609966  0.47386608]\n",
            "413/500: [0.49897143 0.46093395 0.47375068]\n",
            "414/500: [0.49888664 0.46084413 0.4736796 ]\n",
            "415/500: [0.49880892 0.46073374 0.47358093]\n",
            "416/500: [0.49873513 0.4606391  0.4734841 ]\n",
            "417/500: [0.49858722 0.4605182  0.47344545]\n",
            "418/500: [0.49851766 0.4604918  0.47334838]\n",
            "419/500: [0.49853098 0.46043155 0.47330165]\n",
            "420/500: [0.49853155 0.4604108  0.47322425]\n",
            "421/500: [0.49848056 0.46037337 0.47312263]\n",
            "422/500: [0.49843597 0.46031934 0.47303388]\n",
            "423/500: [0.49840802 0.460302   0.47297868]\n",
            "424/500: [0.49832773 0.46026853 0.4728628 ]\n",
            "425/500: [0.4983446  0.46019384 0.47279996]\n",
            "426/500: [0.498372  0.4601701 0.472728 ]\n",
            "427/500: [0.49850082 0.4602206  0.4727011 ]\n",
            "428/500: [0.4986027  0.46023652 0.47279215]\n",
            "429/500: [0.49872887 0.46038812 0.4728025 ]\n",
            "430/500: [0.49899757 0.460601   0.4729126 ]\n",
            "431/500: [0.49921566 0.46088246 0.47294796]\n",
            "432/500: [0.49952653 0.46123648 0.47307578]\n",
            "433/500: [0.4998089  0.46175978 0.47328153]\n",
            "434/500: [0.5000286  0.4623157  0.47347897]\n",
            "435/500: [0.5000383  0.46281448 0.4736    ]\n",
            "436/500: [0.49977148 0.46319634 0.47355163]\n",
            "437/500: [0.49929923 0.46337923 0.47338426]\n",
            "438/500: [0.49862933 0.46336222 0.47307864]\n",
            "439/500: [0.49770743 0.46304342 0.4725112 ]\n",
            "440/500: [0.4969319  0.4626161  0.47206017]\n",
            "441/500: [0.4961065  0.46210393 0.4715567 ]\n",
            "442/500: [0.49534738 0.46154773 0.47112358]\n",
            "443/500: [0.49471754 0.46099445 0.47075826]\n",
            "444/500: [0.49426892 0.46048805 0.47047538]\n",
            "445/500: [0.49411488 0.46011716 0.47033122]\n",
            "446/500: [0.4942395  0.45987493 0.47038504]\n",
            "447/500: [0.49459004 0.45972094 0.47055233]\n",
            "448/500: [0.4951958  0.45972857 0.47088912]\n",
            "449/500: [0.49608546 0.45974684 0.47145066]\n",
            "450/500: [0.4967535  0.45988286 0.47180665]\n",
            "451/500: [0.4974874  0.45999888 0.4721787 ]\n",
            "452/500: [0.4981676  0.46004492 0.47250375]\n",
            "453/500: [0.4988553  0.46009013 0.47282115]\n",
            "454/500: [0.49943754 0.46010423 0.47305188]\n",
            "455/500: [0.4999345  0.46017602 0.47326744]\n",
            "456/500: [0.50024605 0.4602419  0.47333252]\n",
            "457/500: [0.50040454 0.46025845 0.473294  ]\n",
            "458/500: [0.5004903  0.4602719  0.47325552]\n",
            "459/500: [0.5003075  0.46028888 0.47307253]\n",
            "460/500: [0.50017077 0.46041253 0.4728547 ]\n",
            "461/500: [0.5000525  0.46055514 0.47279367]\n",
            "462/500: [0.49987763 0.46075994 0.47272542]\n",
            "463/500: [0.49961743 0.4610442  0.4726411 ]\n",
            "464/500: [0.49948984 0.46139228 0.47265956]\n",
            "465/500: [0.49938965 0.46176818 0.47269365]\n",
            "466/500: [0.49926403 0.46215424 0.4726738 ]\n",
            "467/500: [0.49909684 0.46243918 0.47261688]\n",
            "468/500: [0.49914098 0.46282455 0.47266042]\n",
            "469/500: [0.49911088 0.4631912  0.47265932]\n",
            "470/500: [0.49911982 0.4634979  0.4727236 ]\n",
            "471/500: [0.49896103 0.4637896  0.47266844]\n",
            "472/500: [0.4989717  0.46393216 0.4727323 ]\n",
            "473/500: [0.4989525  0.46400753 0.47274008]\n",
            "474/500: [0.49892622 0.46394262 0.47271088]\n",
            "475/500: [0.49884957 0.4638484  0.47263357]\n",
            "476/500: [0.49879736 0.46363625 0.47252476]\n",
            "477/500: [0.49868184 0.4634254  0.47237417]\n",
            "478/500: [0.498587   0.46320587 0.4722003 ]\n",
            "479/500: [0.4985792  0.46292266 0.47205263]\n",
            "480/500: [0.49865562 0.4626873  0.47195724]\n",
            "481/500: [0.49882746 0.462389   0.4718845 ]\n",
            "482/500: [0.49916363 0.46236736 0.4720004 ]\n",
            "483/500: [0.49933833 0.46222278 0.47202075]\n",
            "484/500: [0.4995786  0.4620401  0.47210118]\n",
            "485/500: [0.4998836  0.46198452 0.47223777]\n",
            "486/500: [0.5002329  0.46205336 0.4724599 ]\n",
            "487/500: [0.50057554 0.46242577 0.4727739 ]\n",
            "488/500: [0.5007055  0.46265322 0.47294414]\n",
            "489/500: [0.50078934 0.46285376 0.4731    ]\n",
            "490/500: [0.5008412  0.4630169  0.47324258]\n",
            "491/500: [0.50088894 0.4631921  0.473384  ]\n",
            "492/500: [0.50079656 0.46331668 0.47338304]\n",
            "493/500: [0.50069374 0.46339253 0.4734336 ]\n",
            "494/500: [0.50062984 0.4634523  0.47341654]\n",
            "495/500: [0.50049263 0.46349537 0.47333875]\n",
            "496/500: [0.5003122  0.46348956 0.473186  ]\n",
            "497/500: [0.5001385  0.46344605 0.47302765]\n",
            "498/500: [0.50003755 0.4633691  0.47287685]\n",
            "499/500: [0.49995935 0.46332464 0.47276768]\n",
            "          X         Y         Z\n",
            "0  0.500721  0.465555  0.475859\n",
            "1  0.501014  0.465584  0.475934\n",
            "2  0.501314  0.465635  0.476011\n",
            "3  0.501566  0.465631  0.476050\n",
            "4  0.501830  0.465611  0.476074\n",
            "            X         Y         Z\n",
            "495  0.500493  0.463495  0.473339\n",
            "496  0.500312  0.463490  0.473186\n",
            "497  0.500139  0.463446  0.473028\n",
            "498  0.500038  0.463369  0.472877\n",
            "499  0.499959  0.463325  0.472768\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "YRHyjh4Z1gbh",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "\n",
        "# plot history\n",
        "pyplot.plot(pd_moving_y_pred.X, label='X_pred')\n",
        "pyplot.plot(test_yp[0:number_steps,0], label='X_real')\n",
        "pyplot.ylim(0.0,1.0)\n",
        "pyplot.legend()\n",
        "pyplot.show()\n",
        "\n",
        "pyplot.plot(pd_moving_y_pred.Y, label='Y_pred')\n",
        "pyplot.plot(test_yp[0:number_steps,1], label='Y_real')\n",
        "pyplot.ylim(0.0,1.0)\n",
        "pyplot.legend()\n",
        "pyplot.show()\n",
        "\n",
        "pyplot.plot(pd_moving_y_pred.Z, label='Z_pred')\n",
        "pyplot.plot(test_yp[0:number_steps,2], label='Z_real')\n",
        "pyplot.ylim(0.0,1.0)\n",
        "pyplot.legend()\n",
        "pyplot.show()\n"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "3-kWWyQio6hJ",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## 8.7 Evaluating LSTM performance"
      ]
    },
    {
      "metadata": {
        "id": "IsQN8BKF8TjA",
        "colab_type": "code",
        "outputId": "a08d5475-9834-46c3-a1d3-8228b511412d",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "cell_type": "code",
      "source": [
        "test_yp[0:4,0]"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([0.5045177 , 0.504884  , 0.50512821, 0.50586081])"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 157
        }
      ]
    },
    {
      "metadata": {
        "id": "3p2RRK890rvX",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "from math import sqrt\n",
        "from sklearn.metrics import mean_squared_error\n",
        "\n",
        "moving_y_pred = []\n",
        "\n",
        "\n",
        "# make a prediction\n",
        "for i in range(2):\n",
        "  #prediction input:\n",
        "  pred_x = test_xp[i:i+1,:,:]\n",
        "  pred_y = my_model_NN.predict(pred_x)\n",
        "  moving_y_pred.appendy_pred.append(pd.DataFrame(my_model_NN.predict(test_xp[i:i+1,:,:])))\n",
        "\n",
        "print(y_pred)\n",
        "\n"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "u01F1sWLu5-t",
        "colab_type": "code",
        "outputId": "4b6cabf6-459f-4cb0-d42a-c190a9154c1f",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "cell_type": "code",
      "source": [
        "print(y_pred[0][:][0:1])\n",
        "# calculate RMSE\n",
        "#rmse = sqrt(mean_squared_error(test_yp[0:1,:], yhat))\n",
        "#print('Test RMSE: %.3f' % rmse)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[[0.4927795  0.4794422  0.48468375]]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "PNpCJmVctL5L",
        "colab_type": "code",
        "outputId": "c03dd01a-c873-41ae-e716-77b8cdce1d75",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "cell_type": "code",
      "source": [
        "yhat.shape"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(1, 3)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 55
        }
      ]
    },
    {
      "metadata": {
        "id": "8CczEGoXjliv",
        "colab_type": "code",
        "outputId": "fe5c779b-a1a8-413c-c4a5-8fef779d5c4a",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 347
        }
      },
      "cell_type": "code",
      "source": [
        "# plot history\n",
        "pyplot.plot((0,test_yp[0:1,2]), label='real')\n",
        "pyplot.plot((0,yhat[0,2]), label='pred')\n",
        "pyplot.legend()\n",
        "pyplot.show()\n",
        "\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nad/o6GgaGxspKSnB4XDw/vvvk5KS0rOJRUREBohOT0cnJyeTlJTEqlWrsFgsbN68mczMTPz9/Zk3\nbx4//OEP+bu/+zsA0tLSiImJ6fHQIiIiA4HF6OqDvHeoJ86z6/GPrtMcu04z7DrNsOs0w67rU48J\ni4iISM9QCYuIiJhEJSwiImISlbCIiIhJVMIiIiImUQmLiIiYRCUsIiJiEpWwiIiISXr9xTpERETk\nJm3CIiIiJlEJi4iImEQlLCIiYhKVsIiIiElUwiIiIiZRCYuIiJikX5Xwli1bWLlyJatWreLcuXOf\nO3bo0CGWL1/OypUr+fWvf21Swr7vVjM8cuQIK1asYNWqVXzve9/D5XKZlLJvu9UM/+j5559n7dq1\nvZys/7jVDMvKyli9ejXLly/nBz/4gUkJ+4dbzXHHjh2sXLmS1atX86Mf/cikhH1fbm4uqampbN++\n/S+O9UqvGP3E0aNHjW984xuGYRhGfn6+sWLFis8dX7RokVFaWmo4nU5j9erVRl5enhkx+7TOZjhv\n3jyjrKzMMAzDeOaZZ4yDBw/2esa+rrMZGoZh5OXlGStXrjTWrFnT2/H6hc5m+OyzzxpvvfWWYRiG\n8cMf/tC4du1ar2fsD241x4aGBmP27NmG3W43DMMwNmzYYJw+fdqUnH1ZU1OTsWbNGuP73/++sW3b\ntr843hu90m824cOHD5OamgpAbGws9fX1NDY2AnD16lUCAwMZOnQoVquVWbNmcfjwYTPj9km3miFA\nZmYmkZGRAISEhFBbW2tKzr6ssxkC/OQnP+E73/mOGfH6hVvN0OVycfLkSebMmQPA5s2bGTZsmGlZ\n+7JbzdHd3R13d3eam5txOBy0tLQQGBhoZtw+ycPDg9/85jeEh4f/xbHe6pV+U8JVVVUEBwd3XA4J\nCaGyshKAyspKQkJCvvCY/MmtZgjg5+cHQEVFBZ988gmzZs3q9Yx9XWczzMzM5J577iEqKsqMeP3C\nrWZYU1ODr68vP/7xj1m9ejXPP/+8WTH7vFvN0dPTk6effprU1FRmz57N3XffTUxMjFlR+yybzYaX\nl9cXHuutXuk3JfznDL3aZpd90Qyrq6v55je/yebNmz/3DS5f7LMzrKurIzMzkw0bNpiYqP/57AwN\nw6C8vJx169axfft2srKyOHjwoHnh+pHPzrGxsZH/+q//Yv/+/bz77rucPXuWnJwcE9PJl+k3JRwe\nHk5VVVXH5YqKCsLCwr7wWHl5+ReeXhjsbjVDuPmN+9RTT/Htb3+bGTNmmBGxz7vVDI8cOUJNTQ2P\nP/44f/u3f8vFixfZsmWLWVH7rFvNMDg4mGHDhjFixAjc3Ny49957ycvLMytqn3arORYUFDB8+HBC\nQkLw8PBgypQpXLhwwayo/VJv9Uq/KeGUlBQOHDgAwMWLFwkPD+84fRodHU1jYyMlJSU4HA7ef/99\nUlJSzIzbJ91qhnDzscwnnniCmTNnmhWxz7vVDBcuXMi+ffvIyMjgV7/6FUlJSWzatMnMuH3SrWZo\ns9kYPnw4V65c6Tiu06hf7FZzjIqKoqCggNbWVgAuXLjAqFGjzIraL/VWr/Srd1F67rnnOHHiBBaL\nhc2bN5OVlYW/vz/z5s3j+PHjPPfccwDMnz+fJ5980uS0fdOXzXDGjBlMnTqVSZMmdXzskiVLWLly\npYlp+6Zb3Q//qKSkhO9973ts27bNxKR9161mWFRUxHe/+10Mw2Ds2LH88Ic/xGrtN/tCr7rVHF9+\n+WUyMzNxc3Nj0qRJ/MM//IPZcfucCxcu8K//+q9cu3YNm81GREQEc+bMITo6utd6pV+VsIiIyECi\nf16KiIiYRCUsIiJiEpWwiIiISVTCIiIiJlEJi4iImEQlLCIiYhKVsIiIiElUwiIiIib5f5vIuVHj\nP6mhAAAAAElFTkSuQmCC\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7f98ab207390>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "VYkqSrWZpJvD",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## 8.8. Design another LSTM Network model"
      ]
    },
    {
      "metadata": {
        "colab_type": "code",
        "id": "zkQbNnDLVKoe",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "from matplotlib import pyplot\n",
        "from keras.models import Sequential\n",
        "from keras.layers import Dense, Dropout, Embedding, LSTM, Bidirectional\n",
        "\n",
        "# Design the LSTM Network\n",
        "\n",
        "LSTM_model = Sequential()\n",
        "LSTM_model.add(Dropout(0.5))\n",
        "LSTM_model.add(LSTM(1024, input_shape=(train_x.shape[1], train_x.shape[2]), return_sequences=True))\n",
        "LSTM_model.add(Dropout(0.5))\n",
        "LSTM_model.add(LSTM(512, return_sequences=True))\n",
        "LSTM_model.add(Dropout(0.5))\n",
        "LSTM_model.add(LSTM(256))\n",
        "LSTM_model.add(Dense(3))\n",
        "LSTM_model.compile(loss='mae', optimizer='adam')\n",
        "\n",
        "# show the model\n",
        "print(LSTM_model.summary)\n",
        "\n",
        "# fit network\n",
        "history = LSTM_model.fit(train_x, train_y, epochs=5, batch_size=100, validation_data=(val_x, val_y), verbose=2, shuffle=False)\n",
        "\n",
        "# plot history\n",
        "pyplot.plot(history.history['loss'], label='train')\n",
        "pyplot.plot(history.history['val_loss'], label='val')\n",
        "pyplot.legend()\n",
        "pyplot.show()"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "ytIzennKn4SQ",
        "colab_type": "code",
        "outputId": "54707ce7-9390-4e0f-b3ac-d9c5bb0fbba0",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "cell_type": "code",
      "source": [
        "from math import sqrt\n",
        "from sklearn.metrics import mean_squared_error\n",
        "\n",
        "# make a prediction\n",
        "yhat = LSTM_model.predict(test_x)\n",
        "\n",
        "# calculate RMSE\n",
        "rmse = sqrt(mean_squared_error(test_y, yhat))\n",
        "print('Test RMSE: %.3f' % rmse)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Test RMSE: 94.490\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "ElytM5LZorfP",
        "colab_type": "code",
        "outputId": "0aa64443-e8fd-4271-b566-cc8d1282a622",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 51
        }
      },
      "cell_type": "code",
      "source": [
        ""
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([ -2.90420818,  -0.90420818,  -0.90420818, ..., -15.18464518,\n",
              "        -0.18933129,  15.80666387])"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 156
        }
      ]
    },
    {
      "metadata": {
        "id": "VXdxVtQ2eolr",
        "colab_type": "code",
        "outputId": "bab81529-b40e-4a33-dcb7-ee5e1c59eb76",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 2261
        }
      },
      "cell_type": "code",
      "source": [
        "\"\"\"\n",
        "    Preparing the FALLS DATASETs\n",
        "    In this cell, we prepare the TRAINING/VAL/TEST DATASET splits for the falls data.\n",
        "    Using a 70%-20%-10% split\n",
        "\"\"\"\n",
        "\n",
        "import random\n",
        "import math\n",
        "from numpy.random import permutation\n",
        "\n",
        "df_filenames = df_only_Falls.File\n",
        "df_filenames = pd.DataFrame(list(set(df_filenames)))\n",
        "\n",
        "\n",
        "# Randomly shuffle the index of each set (ADLs and Falls)\n",
        "# -------------------------------------------------------\n",
        "# First we prepare the sets of ADLs\n",
        "random_indices = permutation(df_filenames.index)\n",
        "# Use a test-split (of 30% of the items)\n",
        "train_split = math.floor(len(df_filenames)*0.7)\n",
        "val_split = math.floor(len(df_filenames)*0.2)\n",
        "# Train set with 70% of the items.\n",
        "df_only_Falls_train_FN = df_filenames.loc[random_indices[0:train_split]]\n",
        "# Test set with 20% of items\n",
        "df_only_Falls_val_FN = df_filenames.loc[random_indices[train_split:train_split+val_split]]\n",
        "# VAL set with 10% of items\n",
        "df_only_Falls_test_FN = df_filenames.loc[random_indices[train_split+val_split:]]\n",
        "\n",
        "print(\"-------TOTAL--------------------\")\n",
        "print(str(len(df_filenames)))\n",
        "print(\"-------train_split--------------------\")\n",
        "print(str(train_split))\n",
        "print(str(len(df_only_Falls_train_FN)))\n",
        "print(\"-------VAL_split--------------------\")\n",
        "print(str(val_split))\n",
        "print(str(len(df_only_Falls_val_FN)))\n",
        "print(\"-------Test_split--------------------\")\n",
        "test_split = len(df_filenames)-(train_split+val_split)\n",
        "print(str(test_split))\n",
        "print(str(len(df_only_Falls_test_FN)))\n",
        "print(\"-------SUMA de_splits--------------------\")\n",
        "print(str(test_split+train_split+val_split))\n",
        "\n",
        "print(\"-------HEADS: train + val + test --------------------\")\n",
        "print(df_only_Falls_train_FN.head())\n",
        "print(df_only_Falls_val_FN.head())\n",
        "print(df_only_Falls_test_FN.head())\n",
        "print(\"---------------------------\")\n",
        "\n",
        "print(\"-------% train  --------------------\")\n",
        "print(len(df_only_Falls_train_FN)/(len(df_only_Falls_train_FN)+len(df_only_Falls_val_FN)+len(df_only_Falls_test_FN)))\n",
        "print(\"-------% val  --------------------\")\n",
        "print(len(df_only_Falls_val_FN)/(len(df_only_Falls_train_FN)+len(df_only_Falls_val_FN)+len(df_only_Falls_test_FN)))\n",
        "print(\"-------% test  --------------------\")\n",
        "print(len(df_only_Falls_test_FN)/(len(df_only_Falls_train_FN)+len(df_only_Falls_val_FN)+len(df_only_Falls_test_FN)))\n",
        "\n",
        "\n",
        "# Test set with 10% of items\n",
        "df_only_Falls_test = df_only_Falls[df_only_Falls.File.isin(df_only_Falls_test_FN[0])]\n",
        "# Val set with 20% of items\n",
        "df_only_Falls_val = df_only_Falls[df_only_Falls.File.isin(df_only_Falls_val_FN[0])]\n",
        "# Train set with 70% of the items.\n",
        "df_only_Falls_train = df_only_Falls[df_only_Falls.File.isin(df_only_Falls_train_FN[0])]\n",
        "\n",
        "\n",
        "print(\"---------------------------\")\n",
        "print(\"---------------------------\")\n",
        "print(df_only_Falls_test.head())\n",
        "print(len(df_only_Falls_test))\n",
        "print(df_only_Falls_val.head())\n",
        "print(len(df_only_Falls_val))\n",
        "print(df_only_Falls_train.head())\n",
        "print(len(df_only_Falls_train))\n",
        "\n",
        "print(\"---------------------------\")\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "-------TOTAL--------------------\n",
            "1798\n",
            "-------train_split--------------------\n",
            "1258\n",
            "1258\n",
            "-------VAL_split--------------------\n",
            "359\n",
            "359\n",
            "-------Test_split--------------------\n",
            "181\n",
            "181\n",
            "-------SUMA de_splits--------------------\n",
            "1798\n",
            "-------HEADS: train + val + test --------------------\n",
            "                     0\n",
            "380   F01_SA02_R01.txt\n",
            "578   F05_SA02_R04.txt\n",
            "203   F06_SA20_R01.txt\n",
            "734   F01_SE06_R05.txt\n",
            "1040  F07_SA08_R04.txt\n",
            "                     0\n",
            "1152  F10_SA22_R01.txt\n",
            "486   F10_SE06_R03.txt\n",
            "1022  F01_SA19_R04.txt\n",
            "1441  F02_SA16_R01.txt\n",
            "887   F02_SA04_R05.txt\n",
            "                     0\n",
            "681   F14_SA08_R02.txt\n",
            "706   F07_SA13_R05.txt\n",
            "1134  F12_SA22_R03.txt\n",
            "543   F14_SA03_R04.txt\n",
            "1627  F05_SA07_R05.txt\n",
            "---------------------------\n",
            "-------% train  --------------------\n",
            "0.699666295884316\n",
            "-------% val  --------------------\n",
            "0.19966629588431592\n",
            "-------% test  --------------------\n",
            "0.10066740823136819\n",
            "---------------------------\n",
            "---------------------------\n",
            "       0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "74210         0      F01      SA        F  F01_SA02_R04.txt       1.372828   \n",
            "74211         1      F01      SA        F  F01_SA02_R04.txt       0.236132   \n",
            "74212         2      F01      SA        F  F01_SA02_R04.txt       0.082957   \n",
            "74213         3      F01      SA        F  F01_SA02_R04.txt       0.036610   \n",
            "74214         4      F01      SA        F  F01_SA02_R04.txt      -0.081237   \n",
            "\n",
            "       max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "74210       113     14.660      -109         222    ...           0.549762   \n",
            "74211       113     18.515       -81         194    ...           0.549762   \n",
            "74212       113     17.510       -35         148    ...           0.549762   \n",
            "74213       113     14.995       -44         157    ...           0.549762   \n",
            "74214       113     13.875       -44         157    ...           0.549762   \n",
            "\n",
            "       skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "74210           0.613749      0.140211      0.019659  0.374884  0.996669   \n",
            "74211           0.812078      0.131952      0.017411  0.287184  0.996819   \n",
            "74212           0.930072      0.131743      0.017356  0.300993  0.996938   \n",
            "74213           1.004197      0.130710      0.017085  0.324425  0.996974   \n",
            "74214           1.037387      0.127712      0.016310  0.368552  0.997010   \n",
            "\n",
            "        corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "74210  0.431172  0.100111  0.000433 -0.101398  \n",
            "74211  0.343333 -0.222682  0.127680 -0.028122  \n",
            "74212  0.355332 -0.313782  0.120176 -0.060068  \n",
            "74213  0.377679 -0.313504  0.137816 -0.023554  \n",
            "74214  0.419866 -0.325779  0.159143 -0.034850  \n",
            "\n",
            "[5 rows x 59 columns]\n",
            "7421\n",
            "       0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "73882         0      F01      SA        F  F01_SA01_R01.txt       1.171828   \n",
            "73883         1      F01      SA        F  F01_SA01_R01.txt       1.165338   \n",
            "73884         2      F01      SA        F  F01_SA01_R01.txt       1.252298   \n",
            "73885         3      F01      SA        F  F01_SA01_R01.txt       1.573220   \n",
            "73886         4      F01      SA        F  F01_SA01_R01.txt       2.841073   \n",
            "\n",
            "       max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "73882        85     -2.090      -114         199    ...           0.554633   \n",
            "73883        85     -2.670      -114         199    ...           0.554633   \n",
            "73884        85     -2.095      -114         199    ...           0.554633   \n",
            "73885        85      0.385      -114         199    ...           0.554633   \n",
            "73886        85      4.115      -114         199    ...           0.554633   \n",
            "\n",
            "       skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "73882           0.446500      0.137164      0.018814  0.301081  0.996504   \n",
            "73883           0.413361      0.138937      0.019304  0.325666  0.996664   \n",
            "73884           0.412581      0.140126      0.019635  0.349794  0.996720   \n",
            "73885           0.584479      0.138831      0.019274  0.392907  0.996872   \n",
            "73886           0.730946      0.138403      0.019156  0.367269  0.996289   \n",
            "\n",
            "        corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "73882  0.335763  0.263937 -0.062947  0.245159  \n",
            "73883  0.359071  0.251497 -0.069058  0.238255  \n",
            "73884  0.382485  0.260917 -0.059155  0.248694  \n",
            "73885  0.425018  0.300276  0.016490  0.236701  \n",
            "73886  0.403227  0.146171 -0.003278  0.237217  \n",
            "\n",
            "[5 rows x 59 columns]\n",
            "14719\n",
            "       0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "74005         0      F01      SA        F  F01_SA01_R04.txt       2.378725   \n",
            "74006         1      F01      SA        F  F01_SA01_R04.txt       1.758380   \n",
            "74007         2      F01      SA        F  F01_SA01_R04.txt       1.259635   \n",
            "74008         3      F01      SA        F  F01_SA01_R04.txt       1.228117   \n",
            "74009         4      F01      SA        F  F01_SA01_R04.txt       1.033344   \n",
            "\n",
            "       max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "74005       114     12.435      -181         295    ...           1.137148   \n",
            "74006       114     10.215      -181         295    ...           1.137148   \n",
            "74007       114     14.545      -181         295    ...           1.137148   \n",
            "74008       114     17.245      -181         295    ...           1.105898   \n",
            "74009       114     16.290      -181         295    ...           1.124796   \n",
            "\n",
            "       skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "74005           2.095565      0.187731      0.035243  0.490460  0.995227   \n",
            "74006           1.964441      0.188469      0.035521  0.478774  0.994868   \n",
            "74007           1.820719      0.187108      0.035009  0.414585  0.992573   \n",
            "74008           2.009225      0.179511      0.032224  0.414591  0.992878   \n",
            "74009           1.910983      0.182354      0.033253  0.436105  0.993287   \n",
            "\n",
            "        corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "74005  0.553179  0.047076  0.530257  0.288389  \n",
            "74006  0.543768  0.022320  0.534386  0.291252  \n",
            "74007  0.496643  0.088437  0.466868  0.261847  \n",
            "74008  0.494766  0.119705  0.479750  0.256974  \n",
            "74009  0.512598  0.093130  0.479493  0.279663  \n",
            "\n",
            "[5 rows x 59 columns]\n",
            "51578\n",
            "---------------------------\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "Bno5z0-8eomc",
        "colab_type": "code",
        "outputId": "ae626dc4-be00-4759-cbd2-5d7cf3187152",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 2261
        }
      },
      "cell_type": "code",
      "source": [
        "\"\"\"\n",
        "    Preparing the ADLs DATASETs\n",
        "    In this cell, we prepare the TRAINING/VAL/TEST DATASET splits for the ADLs data.\n",
        "    Using a 70%-20%-10% split\n",
        "\"\"\"\n",
        "\n",
        "import random\n",
        "import math\n",
        "from numpy.random import permutation\n",
        "\n",
        "df_filenames = df_only_ADLs.File\n",
        "df_filenames = pd.DataFrame(list(set(df_filenames)))\n",
        "\n",
        "\n",
        "# Randomly shuffle the index of each set (ADLs and Falls)\n",
        "# -------------------------------------------------------\n",
        "# First we prepare the sets of ADLs\n",
        "random_indices = permutation(df_filenames.index)\n",
        "# Use a test-split (of 30% of the items)\n",
        "train_split = math.floor(len(df_filenames)*0.7)\n",
        "val_split = math.floor(len(df_filenames)*0.2)\n",
        "# Train set with 70% of the items.\n",
        "df_only_ADLs_train_FN = df_filenames.loc[random_indices[0:train_split]]\n",
        "# Test set with 20% of items\n",
        "df_only_ADLs_val_FN = df_filenames.loc[random_indices[train_split:train_split+val_split]]\n",
        "# VAL set with 10% of items\n",
        "df_only_ADLs_test_FN = df_filenames.loc[random_indices[train_split+val_split:]]\n",
        "\n",
        "print(\"-------TOTAL--------------------\")\n",
        "print(str(len(df_filenames)))\n",
        "print(\"-------train_split--------------------\")\n",
        "print(str(train_split))\n",
        "print(str(len(df_only_ADLs_train_FN)))\n",
        "print(\"-------VAL_split--------------------\")\n",
        "print(str(val_split))\n",
        "print(str(len(df_only_ADLs_val_FN)))\n",
        "print(\"-------Test_split--------------------\")\n",
        "test_split = len(df_filenames)-(train_split+val_split)\n",
        "print(str(test_split))\n",
        "print(str(len(df_only_ADLs_test_FN)))\n",
        "print(\"-------SUMA de_splits--------------------\")\n",
        "print(str(test_split+train_split+val_split))\n",
        "\n",
        "print(\"-------HEADS: train + val + test --------------------\")\n",
        "print(df_only_ADLs_train_FN.head())\n",
        "print(df_only_ADLs_val_FN.head())\n",
        "print(df_only_ADLs_test_FN.head())\n",
        "print(\"---------------------------\")\n",
        "\n",
        "print(\"-------% train  --------------------\")\n",
        "print(len(df_only_ADLs_train_FN)/(len(df_only_ADLs_train_FN)+len(df_only_ADLs_val_FN)+len(df_only_ADLs_test_FN)))\n",
        "print(\"-------% val  --------------------\")\n",
        "print(len(df_only_ADLs_val_FN)/(len(df_only_ADLs_train_FN)+len(df_only_ADLs_val_FN)+len(df_only_ADLs_test_FN)))\n",
        "print(\"-------% test  --------------------\")\n",
        "print(len(df_only_ADLs_test_FN)/(len(df_only_ADLs_train_FN)+len(df_only_ADLs_val_FN)+len(df_only_ADLs_test_FN)))\n",
        "\n",
        "\n",
        "# Test set with 10% of items\n",
        "df_only_ADLs_test = df_only_ADLs[df_only_ADLs.File.isin(df_only_ADLs_test_FN[0])]\n",
        "# Val set with 20% of items\n",
        "df_only_ADLs_val = df_only_ADLs[df_only_ADLs.File.isin(df_only_ADLs_val_FN[0])]\n",
        "# Train set with 70% of the items.\n",
        "df_only_ADLs_train = df_only_ADLs[df_only_ADLs.File.isin(df_only_ADLs_train_FN[0])]\n",
        "\n",
        "\n",
        "print(\"---------------------------\")\n",
        "print(\"---------------------------\")\n",
        "print(df_only_ADLs_test.head())\n",
        "print(len(df_only_ADLs_test))\n",
        "print(df_only_ADLs_val.head())\n",
        "print(len(df_only_ADLs_val))\n",
        "print(df_only_ADLs_train.head())\n",
        "print(len(df_only_ADLs_train))\n",
        "\n",
        "print(\"---------------------------\")\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "-------TOTAL--------------------\n",
            "1798\n",
            "-------train_split--------------------\n",
            "1258\n",
            "1258\n",
            "-------VAL_split--------------------\n",
            "359\n",
            "359\n",
            "-------Test_split--------------------\n",
            "181\n",
            "181\n",
            "-------SUMA de_splits--------------------\n",
            "1798\n",
            "-------HEADS: train + val + test --------------------\n",
            "                     0\n",
            "972   D15_SA05_R02.txt\n",
            "300   D17_SA14_R02.txt\n",
            "1608  D17_SA13_R03.txt\n",
            "732   D14_SE01_R01.txt\n",
            "1561  D09_SA19_R04.txt\n",
            "                     0\n",
            "196   D13_SA12_R03.txt\n",
            "730   D17_SA12_R03.txt\n",
            "1115  D15_SA14_R05.txt\n",
            "1472  D18_SA04_R05.txt\n",
            "1189  D09_SA15_R05.txt\n",
            "                     0\n",
            "1247  D05_SA13_R03.txt\n",
            "367   D16_SA20_R01.txt\n",
            "365   D05_SE07_R03.txt\n",
            "58    D12_SA05_R05.txt\n",
            "1423  D09_SE01_R02.txt\n",
            "---------------------------\n",
            "-------% train  --------------------\n",
            "0.699666295884316\n",
            "-------% val  --------------------\n",
            "0.19966629588431592\n",
            "-------% test  --------------------\n",
            "0.10066740823136819\n",
            "---------------------------\n",
            "---------------------------\n",
            "     0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "656         0      D04      SA        D  D04_SA15_R01.txt       1.976798   \n",
            "657         1      D04      SA        D  D04_SA15_R01.txt       1.794956   \n",
            "658         2      D04      SA        D  D04_SA15_R01.txt       1.822103   \n",
            "659         3      D04      SA        D  D04_SA15_R01.txt       2.207989   \n",
            "660         4      D04      SA        D  D04_SA15_R01.txt       2.853556   \n",
            "\n",
            "     max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "656       602    -14.525      -495        1097    ...            2.32987   \n",
            "657       602    -10.275      -495        1097    ...            2.32987   \n",
            "658       602    -16.935      -495        1097    ...            2.32987   \n",
            "659       602    -23.910      -495        1097    ...            2.32987   \n",
            "660       602    -35.175      -495        1097    ...            2.32987   \n",
            "\n",
            "     skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "656           0.840731      0.531191      0.282164  0.761325  0.989170   \n",
            "657           0.782319      0.517529      0.267836  0.770340  0.989002   \n",
            "658           0.797434      0.515261      0.265494  0.758612  0.989219   \n",
            "659           0.807469      0.521031      0.271474  0.769937  0.989886   \n",
            "660           0.902939      0.513197      0.263371  0.784914  0.990043   \n",
            "\n",
            "      corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "656  0.812910  0.074325 -0.261369 -0.528707  \n",
            "657  0.821536  0.063637 -0.240133 -0.550371  \n",
            "658  0.810495  0.030608 -0.224860 -0.555241  \n",
            "659  0.818470 -0.023804 -0.196976 -0.534093  \n",
            "660  0.831014 -0.053679 -0.115764 -0.567833  \n",
            "\n",
            "[5 rows x 59 columns]\n",
            "7421\n",
            "     0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "451         0      D09      SA        D  D09_SA16_R02.txt      -0.501160   \n",
            "452         1      D09      SA        D  D09_SA16_R02.txt      -0.321327   \n",
            "453         2      D09      SA        D  D09_SA16_R02.txt      -0.200045   \n",
            "454         3      D09      SA        D  D09_SA16_R02.txt      -0.303500   \n",
            "455         4      D09      SA        D  D09_SA16_R02.txt      -0.452534   \n",
            "\n",
            "     max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "451        24       8.57       -11          35    ...           0.581810   \n",
            "452        24       8.06       -13          37    ...           0.594688   \n",
            "453        24       7.72       -14          38    ...           0.586584   \n",
            "454        24       7.90       -14          38    ...           0.641894   \n",
            "455        24       7.67       -14          38    ...           0.641894   \n",
            "\n",
            "     skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "451           0.385679      0.185175      0.034290  0.312680  0.999821   \n",
            "452           0.246218      0.191359      0.036618  0.499402  0.999834   \n",
            "453           0.104850      0.192247      0.036959  0.618865  0.999832   \n",
            "454          -0.010624      0.196151      0.038475  0.697673  0.999830   \n",
            "455          -0.169098      0.194311      0.037757  0.772289  0.999843   \n",
            "\n",
            "      corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "451  0.316069  0.013156 -0.159564 -0.740315  \n",
            "452  0.504183  0.093951 -0.190170 -0.712571  \n",
            "453  0.623152  0.044874 -0.128653 -0.703720  \n",
            "454  0.701761  0.109529 -0.191202 -0.706882  \n",
            "455  0.775232  0.080999 -0.137352 -0.671835  \n",
            "\n",
            "[5 rows x 59 columns]\n",
            "14719\n",
            "   0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "0         0      D08      SA        D  D08_SA06_R02.txt       6.620007   \n",
            "1         1      D08      SA        D  D08_SA06_R02.txt       6.485798   \n",
            "2         2      D08      SA        D  D08_SA06_R02.txt       6.611025   \n",
            "3         3      D08      SA        D  D08_SA06_R02.txt       6.466465   \n",
            "4         4      D08      SA        D  D08_SA06_R02.txt       6.697783   \n",
            "\n",
            "   max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "0        20      6.900         0          20    ...           0.136842   \n",
            "1        20      6.910         0          20    ...           0.136842   \n",
            "2        20      6.920         0          20    ...           0.136842   \n",
            "3        20      6.925         0          20    ...           0.136842   \n",
            "4        20      6.840         0          20    ...           0.136842   \n",
            "\n",
            "   skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "0           0.710918      0.015923      0.000254 -0.252352  0.999241   \n",
            "1           0.595432      0.015770      0.000249 -0.236370  0.999225   \n",
            "2           0.453075      0.016360      0.000268 -0.270590  0.999280   \n",
            "3           0.372169      0.017480      0.000306 -0.175740  0.999289   \n",
            "4           0.316928      0.018029      0.000325 -0.124505  0.999225   \n",
            "\n",
            "    corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "0 -0.239644  0.117341 -0.116463 -0.386754  \n",
            "1 -0.223211  0.120348 -0.124524 -0.371086  \n",
            "2 -0.257421  0.087563 -0.147341 -0.420663  \n",
            "3 -0.164122  0.088369 -0.107984 -0.345380  \n",
            "4 -0.113434  0.199635 -0.101410 -0.293257  \n",
            "\n",
            "[5 rows x 59 columns]\n",
            "51742\n",
            "---------------------------\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "gl2R07zneomw",
        "colab_type": "code",
        "outputId": "0e4d4608-b601-4fbe-9a01-b4ba996d03de",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1054
        }
      },
      "cell_type": "code",
      "source": [
        "# Prepare dataset with Test examplars\n",
        "\n",
        "frames = [df_only_Falls_test, df_only_ADLs_test]\n",
        "df_ADL_Falls_test = pd.concat(frames)\n",
        "print(\"Test ADLs: \"+ str(len(df_only_ADLs_test)))\n",
        "print(\"Test Falls: \"+ str(len(df_only_Falls_test)))\n",
        "print(\"Test ALL: \"+ str(len(df_ADL_Falls_test)))\n",
        "\n",
        "print(df_ADL_Falls_test.head())\n",
        "print(df_ADL_Falls_test.tail())\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Test ADLs: 7421\n",
            "Test Falls: 7421\n",
            "Test ALL: 14842\n",
            "       0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "74210         0      F01      SA        F  F01_SA02_R04.txt       1.372828   \n",
            "74211         1      F01      SA        F  F01_SA02_R04.txt       0.236132   \n",
            "74212         2      F01      SA        F  F01_SA02_R04.txt       0.082957   \n",
            "74213         3      F01      SA        F  F01_SA02_R04.txt       0.036610   \n",
            "74214         4      F01      SA        F  F01_SA02_R04.txt      -0.081237   \n",
            "\n",
            "       max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "74210       113     14.660      -109         222    ...           0.549762   \n",
            "74211       113     18.515       -81         194    ...           0.549762   \n",
            "74212       113     17.510       -35         148    ...           0.549762   \n",
            "74213       113     14.995       -44         157    ...           0.549762   \n",
            "74214       113     13.875       -44         157    ...           0.549762   \n",
            "\n",
            "       skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "74210           0.613749      0.140211      0.019659  0.374884  0.996669   \n",
            "74211           0.812078      0.131952      0.017411  0.287184  0.996819   \n",
            "74212           0.930072      0.131743      0.017356  0.300993  0.996938   \n",
            "74213           1.004197      0.130710      0.017085  0.324425  0.996974   \n",
            "74214           1.037387      0.127712      0.016310  0.368552  0.997010   \n",
            "\n",
            "        corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "74210  0.431172  0.100111  0.000433 -0.101398  \n",
            "74211  0.343333 -0.222682  0.127680 -0.028122  \n",
            "74212  0.355332 -0.313782  0.120176 -0.060068  \n",
            "74213  0.377679 -0.313504  0.137816 -0.023554  \n",
            "74214  0.419866 -0.325779  0.159143 -0.034850  \n",
            "\n",
            "[5 rows x 59 columns]\n",
            "       0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "73549        36      D10      SE        D  D10_SE11_R04.txt       0.426333   \n",
            "73550        37      D10      SE        D  D10_SE11_R04.txt       1.048984   \n",
            "73551        38      D10      SE        D  D10_SE11_R04.txt       1.696184   \n",
            "73552        39      D10      SE        D  D10_SE11_R04.txt       2.870866   \n",
            "73553        40      D10      SE        D  D10_SE11_R04.txt       2.702809   \n",
            "\n",
            "       max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "73549        25     -7.990       -46          71    ...           0.745954   \n",
            "73550        25     -7.090       -46          71    ...           0.745954   \n",
            "73551        25     -6.470       -46          71    ...           0.745954   \n",
            "73552        25     -4.915       -45          70    ...           0.745954   \n",
            "73553        25     -4.120       -34          59    ...           0.745954   \n",
            "\n",
            "       skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "73549           0.949921      0.104893      0.011002  0.457772  0.999941   \n",
            "73550           1.199228      0.098327      0.009668  0.446256  0.999944   \n",
            "73551           1.395630      0.096099      0.009235  0.442326  0.999950   \n",
            "73552           1.475837      0.095552      0.009130  0.439763  0.999968   \n",
            "73553           1.532257      0.093481      0.008739  0.596511  0.999966   \n",
            "\n",
            "        corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "73549  0.458179 -0.052097  0.469280  0.282204  \n",
            "73550  0.446181 -0.078424  0.439495  0.274793  \n",
            "73551  0.442016 -0.097364  0.465092  0.279252  \n",
            "73552  0.439022 -0.156866  0.267743  0.290371  \n",
            "73553  0.596228 -0.316924  0.222387  0.430219  \n",
            "\n",
            "[5 rows x 59 columns]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "pWfSH0rYeoni",
        "colab_type": "code",
        "outputId": "71e2471c-84da-4fe9-ae11-315338b1e5d3",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1054
        }
      },
      "cell_type": "code",
      "source": [
        "# Prepare dataset with VALIDATION examplars\n",
        "\n",
        "frames = [df_only_Falls_val, df_only_ADLs_val]\n",
        "df_ADL_Falls_val = pd.concat(frames)\n",
        "print(\"VAL ADLs: \"+ str(len(df_only_ADLs_val)))\n",
        "print(\"VAL Falls: \"+ str(len(df_only_Falls_val)))\n",
        "print(\"VAL ALL: \"+ str(len(df_ADL_Falls_val)))\n",
        "\n",
        "print(df_ADL_Falls_val.head())\n",
        "print(df_ADL_Falls_val.tail())\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "VAL ADLs: 14719\n",
            "VAL Falls: 14719\n",
            "VAL ALL: 29438\n",
            "       0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "73882         0      F01      SA        F  F01_SA01_R01.txt       1.171828   \n",
            "73883         1      F01      SA        F  F01_SA01_R01.txt       1.165338   \n",
            "73884         2      F01      SA        F  F01_SA01_R01.txt       1.252298   \n",
            "73885         3      F01      SA        F  F01_SA01_R01.txt       1.573220   \n",
            "73886         4      F01      SA        F  F01_SA01_R01.txt       2.841073   \n",
            "\n",
            "       max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "73882        85     -2.090      -114         199    ...           0.554633   \n",
            "73883        85     -2.670      -114         199    ...           0.554633   \n",
            "73884        85     -2.095      -114         199    ...           0.554633   \n",
            "73885        85      0.385      -114         199    ...           0.554633   \n",
            "73886        85      4.115      -114         199    ...           0.554633   \n",
            "\n",
            "       skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "73882           0.446500      0.137164      0.018814  0.301081  0.996504   \n",
            "73883           0.413361      0.138937      0.019304  0.325666  0.996664   \n",
            "73884           0.412581      0.140126      0.019635  0.349794  0.996720   \n",
            "73885           0.584479      0.138831      0.019274  0.392907  0.996872   \n",
            "73886           0.730946      0.138403      0.019156  0.367269  0.996289   \n",
            "\n",
            "        corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "73882  0.335763  0.263937 -0.062947  0.245159  \n",
            "73883  0.359071  0.251497 -0.069058  0.238255  \n",
            "73884  0.382485  0.260917 -0.059155  0.248694  \n",
            "73885  0.425018  0.300276  0.016490  0.236701  \n",
            "73886  0.403227  0.146171 -0.003278  0.237217  \n",
            "\n",
            "[5 rows x 59 columns]\n",
            "       0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "73754        36      D10      SA        D  D10_SA14_R04.txt       1.262008   \n",
            "73755        37      D10      SA        D  D10_SA14_R04.txt       1.300664   \n",
            "73756        38      D10      SA        D  D10_SA14_R04.txt       1.833354   \n",
            "73757        39      D10      SA        D  D10_SA14_R04.txt       2.259722   \n",
            "73758        40      D10      SA        D  D10_SA14_R04.txt       2.880143   \n",
            "\n",
            "       max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "73754        70     10.515       -42         112    ...           0.360769   \n",
            "73755        52      9.205       -42          94    ...           0.271889   \n",
            "73756        52      8.005       -42          94    ...           0.271889   \n",
            "73757        52      7.050       -42          94    ...           0.271889   \n",
            "73758        31      5.750       -42          73    ...           0.271889   \n",
            "\n",
            "       skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "73754          -0.267618      0.058477      0.003420 -0.148061  0.999903   \n",
            "73755          -0.827335      0.052459      0.002752 -0.250835  0.999934   \n",
            "73756          -0.893452      0.050944      0.002595 -0.301442  0.999936   \n",
            "73757          -1.085498      0.049826      0.002483 -0.243876  0.999924   \n",
            "73758          -1.248398      0.048019      0.002306 -0.127822  0.999929   \n",
            "\n",
            "        corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "73754 -0.143331 -0.455102 -0.542373  0.774255  \n",
            "73755 -0.250181 -0.403609 -0.450076  0.751024  \n",
            "73756 -0.302145 -0.319018 -0.323983  0.712290  \n",
            "73757 -0.244635 -0.243005 -0.234489  0.634301  \n",
            "73758 -0.128748 -0.080378 -0.021972  0.470435  \n",
            "\n",
            "[5 rows x 59 columns]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "hj9T1YLNeoof",
        "colab_type": "code",
        "outputId": "54208aa3-91df-4f01-b636-90da16ab047c",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1054
        }
      },
      "cell_type": "code",
      "source": [
        "# Prepare dataset with Train examplars\n",
        "\n",
        "frames = [df_only_Falls_train, df_only_ADLs_train]\n",
        "df_ADL_Falls_train = pd.concat(frames)\n",
        "print(\"train ADLs: \"+ str(len(df_only_ADLs_train)))\n",
        "print(\"train Falls: \"+ str(len(df_only_Falls_train)))\n",
        "print(\"train ALL: \"+ str(len(df_ADL_Falls_train)))\n",
        "\n",
        "print(df_ADL_Falls_train.head())\n",
        "print(df_ADL_Falls_train.tail())\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "train ADLs: 51742\n",
            "train Falls: 51578\n",
            "train ALL: 103320\n",
            "       0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "74005         0      F01      SA        F  F01_SA01_R04.txt       2.378725   \n",
            "74006         1      F01      SA        F  F01_SA01_R04.txt       1.758380   \n",
            "74007         2      F01      SA        F  F01_SA01_R04.txt       1.259635   \n",
            "74008         3      F01      SA        F  F01_SA01_R04.txt       1.228117   \n",
            "74009         4      F01      SA        F  F01_SA01_R04.txt       1.033344   \n",
            "\n",
            "       max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "74005       114     12.435      -181         295    ...           1.137148   \n",
            "74006       114     10.215      -181         295    ...           1.137148   \n",
            "74007       114     14.545      -181         295    ...           1.137148   \n",
            "74008       114     17.245      -181         295    ...           1.105898   \n",
            "74009       114     16.290      -181         295    ...           1.124796   \n",
            "\n",
            "       skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "74005           2.095565      0.187731      0.035243  0.490460  0.995227   \n",
            "74006           1.964441      0.188469      0.035521  0.478774  0.994868   \n",
            "74007           1.820719      0.187108      0.035009  0.414585  0.992573   \n",
            "74008           2.009225      0.179511      0.032224  0.414591  0.992878   \n",
            "74009           1.910983      0.182354      0.033253  0.436105  0.993287   \n",
            "\n",
            "        corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "74005  0.553179  0.047076  0.530257  0.288389  \n",
            "74006  0.543768  0.022320  0.534386  0.291252  \n",
            "74007  0.496643  0.088437  0.466868  0.261847  \n",
            "74008  0.494766  0.119705  0.479750  0.256974  \n",
            "74009  0.512598  0.093130  0.479493  0.279663  \n",
            "\n",
            "[5 rows x 59 columns]\n",
            "       0_Win_ID Act_Type Age_Cat Fall_ADL              File  kurtosis_S1_X  \\\n",
            "73877        36      D14      SA        D  D14_SA17_R04.txt      -0.210534   \n",
            "73878        37      D14      SA        D  D14_SA17_R04.txt      -0.447829   \n",
            "73879        38      D14      SA        D  D14_SA17_R04.txt      -0.284214   \n",
            "73880        39      D14      SA        D  D14_SA17_R04.txt      -0.346115   \n",
            "73881        40      D14      SA        D  D14_SA17_R04.txt      -0.435528   \n",
            "\n",
            "       max_S1_X  mean_S1_X  min_S1_X  range_S1_X    ...     range_S1_N_VER  \\\n",
            "73877       347    184.245        42         305    ...           1.657134   \n",
            "73878       347    190.090        42         305    ...           1.657134   \n",
            "73879       347    198.075        42         305    ...           1.657134   \n",
            "73880       347    207.485        49         298    ...           1.657134   \n",
            "73881       336    208.140        49         287    ...           1.657134   \n",
            "\n",
            "       skewness_S1_N_VER  std_S1_N_VER  var_S1_N_VER   corr_HV   corr_NH  \\\n",
            "73877           1.817618      0.248727      0.061865  0.634564  0.635461   \n",
            "73878           1.676049      0.248163      0.061585  0.584440  0.581614   \n",
            "73879           2.034859      0.232242      0.053936  0.558561  0.556817   \n",
            "73880           2.236304      0.222970      0.049716  0.570966  0.569200   \n",
            "73881           2.236037      0.182395      0.033268  0.406767  0.404551   \n",
            "\n",
            "        corr_NV   corr_XY   corr_XZ   corr_YZ  \n",
            "73877  0.999159  0.206554 -0.088792 -0.079303  \n",
            "73878  0.999086  0.319084 -0.174252 -0.187629  \n",
            "73879  0.998980  0.391342 -0.269796 -0.251746  \n",
            "73880  0.998893  0.421665 -0.312372 -0.302835  \n",
            "73881  0.998343  0.488371 -0.518035 -0.317396  \n",
            "\n",
            "[5 rows x 59 columns]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "qMYCUQEReopZ",
        "colab_type": "code",
        "outputId": "de066e34-64a6-4a1a-ef2a-63e21f11ba6a",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1071
        }
      },
      "cell_type": "code",
      "source": [
        "df_ADL_Falls[\"max_S1_N_HOR\"]"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0         1.045606\n",
              "1         1.045606\n",
              "2         1.045606\n",
              "3         1.045606\n",
              "4         1.029488\n",
              "5         1.029488\n",
              "6         1.029488\n",
              "7         1.029488\n",
              "8         1.073366\n",
              "9         1.073366\n",
              "10        1.073366\n",
              "11        1.073366\n",
              "12        1.073366\n",
              "13        1.073366\n",
              "14        1.073366\n",
              "15        1.073366\n",
              "16        1.073366\n",
              "17        1.073366\n",
              "18        1.751473\n",
              "19        2.098994\n",
              "20        3.672592\n",
              "21        3.887103\n",
              "22        3.887103\n",
              "23        3.887103\n",
              "24        3.887103\n",
              "25        3.887103\n",
              "26        3.887103\n",
              "27        3.887103\n",
              "28        3.887103\n",
              "29        3.887103\n",
              "            ...   \n",
              "147570    0.995902\n",
              "147571    0.994100\n",
              "147572    0.994100\n",
              "147573    0.994100\n",
              "147574    0.994100\n",
              "147575    0.994100\n",
              "147576    0.994100\n",
              "147577    0.994100\n",
              "147578    0.994100\n",
              "147579    1.747714\n",
              "147580    1.747714\n",
              "147581    1.747714\n",
              "147582    1.747714\n",
              "147583    1.747714\n",
              "147584    1.747714\n",
              "147585    1.747714\n",
              "147586    1.747714\n",
              "147587    1.747714\n",
              "147588    1.747714\n",
              "147589    1.747714\n",
              "147590    1.747714\n",
              "147591    1.747714\n",
              "147592    1.747714\n",
              "147593    1.747714\n",
              "147594    1.747714\n",
              "147595    1.747714\n",
              "147596    1.747714\n",
              "147597    1.747714\n",
              "147598    1.747714\n",
              "147599    1.742192\n",
              "Name: max_S1_N_HOR, Length: 147600, dtype: float64"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 13
        }
      ]
    }
  ]
}